Торговый символ мультивалютного советника

Vadim Dudchenko  

Подскажите, как заставить мультвалютного советника, который торгует по трём парам, брать тиковые бары и временной интервал не с символа на котором установлен советник, а с другого символа, так же его временной интервал.  его временной интервал.

Какую функцию прописать в коде.

Спасибо.

Dmitiry Ananiev  
Vadim Dudchenko:

Подскажите, как заставить мультвалютного советника, который торгует по трём парам, брать тиковые бары и временной интервал не с символа на котором установлен советник, а с другого символа, так же его временной интервал.  его временной интервал.

Какую функцию прописать в коде.

Спасибо.

на примере:
double  point  = SymbolInfoDouble(sym,SYMBOL_POINT);

вместо 

point  = SymbolInfoDouble(_Symbol,SYMBOL_POINT);

Подобные замены надо сделать везде. И передавать нужный символ в sym.

Vadim Dudchenko  
Dmitiry Ananiev #:

на примере:
double  point  = SymbolInfoDouble(sym,SYMBOL_POINT);

вместо 

point  = SymbolInfoDouble(_Symbol,SYMBOL_POINT);

Подобные замены надо сделать везде. И передавать нужный символ в sym.

Это уже сделано в советнике и работает отлично. Вопрос в другом. Как брать тики в советнике с другой пары. Так как для каждой корзины с трёх пар нужны тики с определённого символа и его Time Frame. Как прописать эту функцию для каждой корзины.

Вот фрагмент кода, который берёт тики сейчас.

void OnTick()
{
if(Trade1) // первая корзина
{
if(bars!=Bars(NULL,TF1))  // тики для первой корзины с указанным TimeFrame для графика, на котором стоит советник
{
if(Symb1_1 != "") Trade(Symb1_1, Lot_1, Magic_1);  // символ первой корзины 
if(Symb1_2 != "") Trade(Symb1_2, Lot_1, Magic_1);  // символ первой корзины 
if(Symb1_3 != "") Trade(Symb1_3, Lot_1, Magic_1);  // символ первой корзины 
}
bars=Bars(NULL,TF1);
}
if(Trade2) // вторая корзина
{
if(bars!=Bars(NULL,TF2))
{
if(Symb2_1 != "") Trade(Symb2_1, Lot_2, Magic_2);
if(Symb2_2 != "") Trade(Symb2_2, Lot_2, Magic_2);
if(Symb2_3 != "") Trade(Symb2_3, Lot_2, Magic_2);
}
bars=Bars(NULL,TF2);
}
if(info) ShowInfo();
}


Форум трейдеров - MQL5.community
Форум трейдеров - MQL5.community
  • www.mql5.com
MQL5: форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Sergey Zhilinskiy  
По таймеру можете это сделать или OnBookEvent.
Vadim Dudchenko  
Sergey Zhilinskiy #:
По таймеру можете это сделать или OnBookEvent.
По таймеру - может быть много неточностей, а вот с  OnBookEvent я бы попробовал, но нехватает знаний. Если поможете, буду очень признателен.
Maxim Kuznetsov  
Vadim Dudchenko #:
По таймеру - может быть много неточностей, а вот с  OnBookEvent я бы попробовал, но нехватает знаний. Если поможете, буду очень признателен.

для мультисимвола: вот как раз таки без частого таймера вам и не обойтись :-) 

PS/ если упоминание OnBookEvent - "нехватает знаний", значит про такие советники пока рано, просто запоретё всё. Без обид - надо подтягивать навыки на более простых "кошках"

Vadim Dudchenko  
Maxim Kuznetsov #:

для мультисимвола: вот как раз таки без частого таймера вам и не обойтись :-) 

PS/ если упоминание OnBookEvent - "нехватает знаний", значит про такие советники пока рано, просто запоретё всё. Без обид - надо подтягивать навыки на более простых "кошках"

Ну так помогите мне, и котёнок превратится в кота ... Я люблю учиться.

Dmitiry Ananiev  
Maxim Kuznetsov #:

для мультисимвола: вот как раз таки без частого таймера вам и не обойтись :-) 

PS/ если упоминание OnBookEvent - "нехватает знаний", значит про такие советники пока рано, просто запоретё всё. Без обид - надо подтягивать навыки на более простых "кошках"

да ладно стращать. Все когда то бывает первый раз. 

топикстартер не совсем сам понимает , что спрашивает. 
Если надо перебрать открытые чарты и на основании их данных что-то сделать - это нужно перебрать чарты и получить инфу. Смотр и справку по части операции с чартами.
Если просто получить цены с 3 символов - то SymbolInfoTick(sym, Mql _tick)  

Vadim Dudchenko  
Dmitiry Ananiev #:

да ладно стращать. Все когда то бывает первый раз. 

топикстартер не совсем сам понимает , что спрашивает. 
Если надо перебрать открытые чарты и на основании их данных что-то сделать - это нужно перебрать чарты и получить инфу. Смотр и справку по части операции с чартами.
Если просто получить цены с 3 символов - то SymbolInfoTick(sym, Mql _tick)  

Согласен, не знаю. Знал бы давно, сделал сам.

Вот часть кода МУЛЬТВАЛЮТНГОГО советника, который торгует корзинами. Когда торгует одной корзиной, все входы в рынок делает верно. Когда двумя корзинами, то идёт путаница и входы уже не верно делает. Как можно по другому прописать?

void OnTick()
{
if(Trade1) // первая корзина
{
if(bars!=Bars(NULL,TF1))
{
if(Symb1_1 != "") Trade(Symb1_1, Lot_1, Magic_1);
if(Symb1_2 != "") Trade(Symb1_2, Lot_1, Magic_1);
if(Symb1_3 != "") Trade(Symb1_3, Lot_1, Magic_1);
}
bars=Bars(NULL,TF1);
}
if(Trade2) // вторая корзина
{
if(bars!=Bars(NULL,TF2))
{
if(Symb2_1 != "") Trade(Symb2_1, Lot_2, Magic_2);
if(Symb2_2 != "") Trade(Symb2_2, Lot_2, Magic_2);
if(Symb2_3 != "") Trade(Symb2_3, Lot_2, Magic_2);
}
bars=Bars(NULL,TF2);
}
if(info) ShowInfo();
}


Какую функцию можно добавить, что бы для отдельной корзины брать график отдельного символа и его TimeFrame (это уже я подобрал для каждой корзины). Только так будет верный сигнал на вход советника.
Помогите, буду очень признателен.
Sergey Golubev  

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

...

Sergey Golubev, 2020.03.23 16:08

Вставляйте правильно код -

----------------‌

MQL5.community - Памятка пользователя 

Кнопка  Исходный кодпредназначена для вставки исходного кода в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.


Renat Akhtyamov  
Vadim Dudchenko:

Подскажите, как заставить мультвалютного советника, который торгует по трём парам, брать тиковые бары и временной интервал не с символа на котором установлен советник, а с другого символа, так же его временной интервал.  его временной интервал.

Какую функцию прописать в коде.

Спасибо.

тут почитайте

https://www.mql5.com/ru/docs/series

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Причина обращения: