gince: Rosh, помогите пожалуйста, следующее вставить в шаблон советника
Сигнал на покупку будет таким:
//+------------------------------------------------------------------+//| получить торговый сигнал |//+------------------------------------------------------------------+// tradeDay - день недели, в который мы торгуем, если равно нулю - торгуем все дни
//
// useReversTradeDay - если равно true, то дни торговли становятся не торговыми днями
//
// everyTick - если равно true, то функция вычисляет сигнал на каждый тик
//
// period - если everyTick==false, то вычисляется при появлении нового бара с этим периодомintgetTradeSignal(inttradeDay, // обычно равно 0booluseReversTradeDay,// обычно равно falsebooleveryTick, // сигнал вычисляется каждый тикintperiod// рабочий период для индикаторов и сигналов){intsignal=OP_BALANCE;
//----if(tradeDay!=0)// будем учитывать дни недели{// день, в который мы не торгуемif(useReversTradeDay && tradeDay==DayOfWeek())return(signal);
// торгуем все дни, кроме дня равного tradeDay if(!useReversTradeDay && tradeDay!=DayOfWeek())return(signal);
}if(!everyTick)// если торговые сигналы снимаем не каждый тик{// и у нас нет нового бара на таймфрейме period минутif(!isNewBar(period))return(signal); // то выходим с пустым сигналом}// Наполните функцию yourFunction() своим кодом/алгоритмом
BlueH_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,1, shift);// Blue (H. Vol Band)
Yellow_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,2, shift);// Yellow (Market Base)
BlueL_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,3, shift);// Blue (L. Vol Band)
Green_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,4, shift);// Green (RSI Price)
Red_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,5, shift);// Red (Trade Signal)
Channel_0 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,6, shift);// (Channel)// Last Closed Candle...
BlueH_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,1, shift+1);// Blue (H. Vol Band)
Yellow_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,2, shift+1);// Yellow (Market Base)
BlueL_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,3, shift+1);// Blue (L. Vol Band)
Green_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,4, shift+1);// Green (RSI Price)
Red_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,5, shift+1);// Red (Trade Signal)
Channel_1 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,6, shift+1);// (Channel)// Prev Prev Candle...
BlueH_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,1, shift+2);// Blue (H. Vol Band)
Yellow_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,2, shift+2);// Yellow (Market Base)
BlueL_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,3, shift+2);// Blue (L. Vol Band)
Green_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,4, shift+2);// Green (RSI Price)
Red_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,5, shift+2);// Red (Trade Signal)
Channel_2 =iCustom(Symbol(),workPeriod,"TDI Channel",13,0,34,2,0,7,0,6, shift+2);// (Channel)if(Green_1 > Red_1 && Green_2 < Green_1 && Red_1 < Yellow_1 && Yellow_2 < Yellow_1 && Red_2 < Red_1 && Yellow_1 <50&& Channel_1 >25)signal=OP_BUY;if(Green_1 < Red_1 && Green_2 > Green_1 && Red_2 > Red_1 && Red_1 > Yellow_1 && Yellow_2 > Yellow_1 && Yellow_1 >50&& Channel_1 <25)signal=OP_SELL;if(signal!=OP_BUY && signal!=OP_SELL)signal = OP_BALANCE;
//----return(signal);
}
gince:
Я за вами пошел и тоже неправилно выразилця Хотел спроситя про закрытие Правильно ли я сделал
Нет, условия для закрытия ордеров нужно вставить в эту функцию:
//+------------------------------------------------------------------+//| подготовить массив тикетов для закрытия |//+------------------------------------------------------------------+voidPrepareTicketsToClose(intsignal, boolRevers, int & ticketsClose[][2],
double & lots[],doublearrayTickets[][9]){intsize=ArrayRange(arrayTickets,0);
//----if(size==0)return;
inti,type,ticket,closeSize;
for(i=0;i<size;i++){type=arrayTickets[i][1];
// если тип ордера не рыночный, то пропуcкаемif(type>OP_SELL)continue;
if(Revers)// перевернем тип рыночного ордера{if(type==OP_BUY)type=OP_SELL; elsetype=OP_BUY;
}// тут решаем для каждого открытого ордера его судьбу// оставить в рынке или добавить в массив на закрытиеif(type==OP_BUY){// // код разрешающий оставить покупкуЗдесь решаем - оставить ордер BUY или закрыть// как примерif(signal==OP_BUY)continue;
}if(type==OP_SELL){// // код разрешающий оставить продажуЗдесь решаем - оставить ордер SELL или закрыть// как примерif(signal==OP_SELL)continue;
}closeSize=ArrayRange(ticketsClose,0);
ArrayResize(ticketsClose,closeSize+1);
ArrayResize(lots,closeSize+1);
ticketsClose[closeSize][0] = arrayTickets[i][0]; // # тикетаticketsClose[closeSize][1] = arrayTickets[i][1]; // тип ордераPrint("arrayTickets[i][0]=",arrayTickets[i][0]," ticketsClose[closeSize][0]=",ticketsClose[closeSize][0]);
// здесь укажем сколько лотов нужно закрытьlots[closeSize] = arrayTickets[i][2]; // закрываемый объем// можно закрывать частично, тогда нужно переписать строку сверху}//----return;
}
// тут решаем для каждого открытого ордера его судьбу// оставить в рынке или добавить в массив на закрытиеif(type==OP_BUY){// // код разрешающий оставить покупку
Здесь решаем - оставить ордер BUY или закрыть
// как пример// pirkimu uzdarymas - Close Buy
AcquireTDI_Values();if(Red_1 < Yellow_1 && Red_2 > Yellow_2) signal = Close_BUY;else{if(signal==OP_BUY)continue;}}
Rosh, помогите пожалуйста, следующее вставить в шаблон советника
Сигнал на покупку будет таким:
И еще вопрос Как это пристроить
Rosh, помогите пожалуйста, следующее вставить в шаблон советника
Сигнал на покупку будет таким:
А на продажу в какое место?
А на продажу в какое место?
А на продажу в какое место?
Я за вами пошел и тоже неправилно выразилця Хотел спроситя про закрытие Правильно ли я сделал
Нет, условия для закрытия ордеров нужно вставить в эту функцию: