Советники: Шаблон простого советника с комбинированным закрытием по ТП и СЛ или противоположному сигналу - страница 2

 
Alexandr Bryzgalov:

это они в функции открытия(т.е. полагается что функция открытия ордеров может использоваться и для открытия лимитных ордеров)

в логике стратегии их нет.

...как-бы включить стоплимитники ? - для теста, а вдруг ?
 
akarustam:
...как-бы включить стоплимитники ? - для теста, а вдруг ?
...в экспериментах с Вашим советником прояснилась добавка надёжности прогнозирования и вот, на демо, чудеса наблюдаются, т.е. с повышением надёжности очевидно было увеличить обьёмы и "малпомалу под крупняк"..., короче хочу послать Вам свои дилетантские добавки к Вашему советнику ? Результаты демо торгов выставлю позже (в конце недели). Обещанная отчётность по тестированию с оптимизацией пока задерживается в связи с постоянными обновлениями параметров в экспериментах, окончательные результаты выставлю по завершению тестирования (или вышлю ?). Надеюсь на Ваши поправки профессионального программиста к той стратегии, которую увидите ? Если заинтересует, то давайте Ваш емаил ?
 

Здравствуйте, Александр! Пытаюсь переделать Вашего советника под другой индикатор. Как сделать так, чтобы после сигнала бай, все другие сигналы бай он игнорировал пока не будет сигнала селл. И наоборот. Я попытался сделать, но у меня он стал открывать по очереди бай и селл при сигнале бай (например). Переменная "int Flag=0" в глобальных переменных

if(ti!=Time[0])//если время текущего бара не равно запомненному, пробуем открыть ордер если есть сигнал

     {

      if(total==0)//если нет открытых одеров

        {

         switch(Signal)

           {

            case 1://если сигнал на покупку

              {if (Flag!=1){

               if(OpenOrders(_Symbol,OP_BUY,Ask,Lot,Slippage,StopLoss,TakeProfit,Magik,"","",true)>0)

               //если ордер открыт успешно, но запоминаем время текущего бара

                 {

                  ti=Time[0];

                  Flag=1;

                 }

               break;

              }}

            case(-1)://если сигнал на продажу

              {if(Flag!=2){

               if(OpenOrders(_Symbol,OP_SELL,Bid,Lot,Slippage,StopLoss,TakeProfit,Magik,"","",true)>0)

               //если ордер открыт успешно, но запоминаем время текущего бара

                 {

                  ti=Time[0];

                  Flag=2;

                 }

               break;

              }}

           }

        }

     }

 
Kofa:

посмотрите такой варинт
Файлы:
 
Спасибо огромное!
 
Александр, Очень мне нравится этот советник. Сложно ли будет сейчас переделать его на старый билд? Есть конвертор кода в cAlgo, но новые билды он не понимает.http://2calgo.com/  Тестирование и оптимизация там проходит гораздо быстрее. Буду весьма Вам признателен! Безубыток в нем не помешает, но это уже капризы)))
 
Kofa:
Александр, Очень мне нравится этот советник. Сложно ли будет сейчас переделать его на старый билд? Есть конвертор кода в cAlgo, но новые билды он не понимает.http://2calgo.com/  Тестирование и оптимизация там проходит гораздо быстрее. Буду весьма Вам признателен! Безубыток в нем не помешает, но это уже капризы)))
Замените OnInit на init,
OnDeinit(const int reason) на deinit()

void OnTick() на int start()

должно получиться
 
Большое спасибо за помощь. Он его принял, но не конвертировал. (На данный момент мы поддерживаем только 82% от MQ4 роботов. )
 
Kofa:
Есть конвертор кода в cAlgo, но новые билды он не понимает.http://2calgo.com/  Тестирование и оптимизация там проходит гораздо быстрее.
Гораздо - это сколько?
 
Kofa:
Большое спасибо за помощь. Он его принял, но не конвертировал. (На данный момент мы поддерживаем только 82% от MQ4 роботов. )
Значит он не подходит для них

попробуйте обратиться с вашим вопросом во фриланс