Один советник на два таймфрейма - страница 2

 
Оперируем iOpen, iClose, iHigh, iLow и все получится...
 
Спасибо всем за советы. А вот если припустим в пределах одного терминала на 4 графиках одной валютной пары (у каждого графика свой таймфрейм), запущено четыре разно настроеных советника (но работающие поп одному принципу(одновременного срабатывания не будет)) также советники при открытии выставляют Тейкпрофит и Стоплос для каждой отрытой позиции). Извините может запутано написал... Нужно ли для каждого советника прописывать Меджыкнамбер?
 
Profit777:
Спасибо всем за советы. А вот если припустим в пределах одного терминала на 4 графиках одной валютной пары (у каждого графика свой таймфрейм), запущено четыре разно настроеных советника (но работающие поп одному принципу(одновременного срабатывания не будет)) также советники при открытии выставляют Тейкпрофит и Стоплос для каждой отрытой позиции). Извините может запутано написал... Нужно ли для каждого советника прописывать Меджыкнамбер?
нужно
 
Прочитал разъяснение по поводу применения Меджыка... Возник вопрос
В одном советнике есть и бай и селл ордердерсенды с выставлением TP и SL.
Тогда в пределах одного термина
в первом советнике прикрепленном к графику M1 нужно поставить в параметрах одерсенда
{   
 OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),1,0,Green);
}
{
 OrderSend(Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),2,0,Green);
}
меджык сел равен 1

меджык бай равен 2 

 

А в втором советнике прикрепленном к графику M5  

  

{   
 OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),3,0,Green);
}
{
 OrderSend(Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),4,0,Green);
}

меджык сел равен 3

меджык бай равен 4

 

 Для третьего советника на M15  


{   
 OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),5,0,Green);
}
{
 OrderSend(Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),6,0,Green);
}
меджык сел равен 5

меджык бай равен 6 

 

Для четвертого на M30

{   
 OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),7,0,Green);
}
{
 OrderSend(Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),8,0,Green);
}
меджык сел равен 7

меджык бай равен 8 

И та далее?

 

Зачем в одном советнике разные магики для бай и селл? Это имхо совсем лишнее.

 
Profit777:
Прочитал разъяснение по поводу применения Меджыка... Возник вопрос
В одном советнике есть и бай и селл ордердерсенды с выставлением TP и SL.
Тогда в пределах одного термина
в первом советнике прикрепленном к графику M1 нужно поставить в параметрах одерсенда
меджык сел равен 1

меджык бай равен 2 

 

А в втором советнике прикрепленном к графику M5  

  

меджык сел равен 3

меджык бай равен 4

 

 Для третьего советника на M15  

меджык сел равен 5

меджык бай равен 6 

 

Для четвертого на M30

меджык сел равен 7

меджык бай равен 8 

И та далее?

Крайне интересное решение, НО есть проще:

extern int Magic = 1111;          // Внешние настройки советника
void Function()
{
    OrderSend (Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),"",Magic,0,Green);
    OrderSend (Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),"",Magic,0,Green);
}
Magic должен учитываться не только при открытии ордеров, но и при их сопровождении: OredrModify(), OrderClose().
 
TarasBY:

Крайне интересное решение, НО есть проще:

Magic должен учитываться не только при открытии ордеров, но и при их сопровождении: OredrModify(), OrderClose().

 

Здравствуйте. Спасибо за ответ. Нужно ли OredrModify(), OrderClose() если при открытии задается TP и SL, а советник после открытия ничего больше с ордерами не делает... 

 Или так? 

 

extern int Magic = 1111;          // Внешние настройки советника
extern double SellSL=5; //стоплосс для продажи
extern double SellTP=5;   //тейкпрофит для продажи
extern double BuySL=5;  //стоплосс для покупки
extern double BuyTP=5;    //тейкпрофит для покупки



if (условие для sell)

{
void Function()     
 {   
 OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits),"",Magic,0,Green);
 }
}
else if (условие для bay)

{
void Function()        
 {
 OrderSend(Symbol(),OP_BUY,Lot,Ask,3,NormalizeDouble(Bid - BuySL*Point,Digits), NormalizeDouble(Ask + BuyTP*Point,Digits),"",Magic,0,Green);
 }
}

Спасибо 

 
Profit777:

Здравствуйте. Спасибо за ответ. Нужно ли OredrModify(), OrderClose() если при открытии задается TP и SL, а советник после открытия ничего больше с ордерами не делает... 

Можно обойтись без OredrModify(), OrderClose()...

Но  все равно нужно отслеживать открытые ордера иначе как советник будет знать что у него уже есть открытый ордер?

Причина обращения: