Как соединить два советника

 

Привет всем.

Может кто подскажет, какую часть где вырезать и куда вставить, а может это и не возможно (я пока ничего не понимаю в языке, кроме "If" :).

Надо чтобы ордера открывались и закрывались советником Enterra_Forex_Star_EA_3.1 а доплнительные ордера открывались как у Ilan_RSI_mm_extr193 мартином или усреднением (это вроде можно сделать экспонентой =1).

Или просто прикрутить усреднение по какомунибудь трендовому индюку.

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

Заранее благодарю.

Файлы:
enterra_1.rar  23 kb
 

если просто "соединить два советника", то вот я описал как быстрее https://www.mql5.com/ru/forum/131277/page25

если оставить только стратегии и писать новый код, тогда https://www.mql5.com/ru/job

 

По первому варианту почемуто не получилось: в месте где написал main1() - выдает ошибку на "(".

Попробу сам дописать - это кажется проще чем соединять с этим "гигантом" - где море бесполезного мне кода.

Спасибо.

 

https://www.mql5.com/ru/code/10117

+

https://www.mql5.com/ru/code/10107

= combo.mq4

это "творчество" заняло 3 минуты, копируем и правим синтаксические ошибки, а вот проверка логики такого кода - это труд на несколько часов/дней ;)

Файлы:
combo.mq4  12 kb
 
int start(){
    if (triger)main1(); else main2();
    triger= !triger;
return(0);
}

наверно так будет красивее выглядеть start()

;)

 

Как не пытался так и не понял логики: какое тут условие или чего... короче, я полный чайник в этом вопросе.

Всеравно спасибо за внимание. Буду грызть.

if (triger)main1(); else main2();
    triger= !triger;
 
а как соединить 6 советников?
 
dmmikl86:
а как соединить 6 советников?

int start() {

start1();

start2();

start3();

start4();

start5();

start6();

return(0);

}

Где start*() - переименованные функции start() из других советников.

 
Reshetov:

int start() {

start1();

start2();

start3();

start4();

start5();

start6();

return(0);

}

Где start*() - переименованные функции start() из других советников.


а чем этот код отличается от этого?

int start(){
    if (triger)main1(); else main2();
    triger= !triger;
return(0);
}

кроме количества обьединяемых советников

 

Кто поможет c c советом? хочу соединить один и тот же советник таким образом, например: первый работает на графике  М_5  и ничего не открывает,только передает сигналы второму который пашет на Н_1 и когда совпадают условии обоих открывает ордер.вопрос: это можно совместить в один, чтобы часть условий работало на М_5 а часть на Н_1 ? сов простой чтобы было понятно 

 

  extern int    tp    = 150;

 extern int    sl    = 450;

 extern double Lot   =0.01;

 extern int Magic    =1234;

 //---- indicator parameters

 extern int MA_Period =13;

 extern int MA_Shift  =0;

 double A,B;

int start()

  {

  A=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,0);

  B=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,1);

 

       if(OrdersTotal()==0 && A>B)       

 OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-sl*Point,Ask+tp*Point,"",Magic,0,Blue); 

           

        if(OrdersTotal()==0 && A<B )       

 OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Bid+sl*Point,Bid-tp*Point,"",Magic,0,Red); 

        

    return(0);

    }

 

помогите соединить советник и трелинг  буду очень благодарен!!!

 вот файлы

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