Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
ktest0
631
ktest0 2013.02.28 18:30  
Оперируем iOpen, iClose, iHigh, iLow и все получится...
prt
369
prt 2013.03.04 20:11  
Спасибо всем за советы. А вот если припустим в пределах одного терминала на 4 графиках одной валютной пары (у каждого графика свой таймфрейм), запущено четыре разно настроеных советника (но работающие поп одному принципу(одновременного срабатывания не будет)) также советники при открытии выставляют Тейкпрофит и Стоплос для каждой отрытой позиции). Извините может запутано написал... Нужно ли для каждого советника прописывать Меджыкнамбер?
Artyom Trishkin
Модератор
77324
Artyom Trishkin 2013.03.05 01:35  
Profit777:
Спасибо всем за советы. А вот если припустим в пределах одного терминала на 4 графиках одной валютной пары (у каждого графика свой таймфрейм), запущено четыре разно настроеных советника (но работающие поп одному принципу(одновременного срабатывания не будет)) также советники при открытии выставляют Тейкпрофит и Стоплос для каждой отрытой позиции). Извините может запутано написал... Нужно ли для каждого советника прописывать Меджыкнамбер?
нужно
prt
369
prt 2013.03.05 09:22  
Прочитал разъяснение по поводу применения Меджыка... Возник вопрос
В одном советнике есть и бай и селл ордердерсенды с выставлением 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 

И та далее?

Левитин Сергей В.
5163
Левитин Сергей В. 2013.03.05 09:32  

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

TarasBY
1739
TarasBY 2013.03.05 11:20  
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().
prt
369
prt 2013.03.05 12:12  
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);
 }
}

Спасибо 

Левитин Сергей В.
5163
Левитин Сергей В. 2013.03.05 13:44  
Profit777:

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий