Доработка ботов (советников, индикаторов) vol. 2

superhonda498

Новичок форума
Ребята сделайте пожалуйста этому индикатору id.....а то не хочет второй ставится индикатор....
Скриншот 29-02-2020 174529.jpg
 

Вложения

  • CMS_BidRatio MTF (2).ex4
    32,2 КБ · Просмотры: 20
  • CMS_BidRatio MTF (2).mq4
    10,9 КБ · Просмотры: 30

mobidik

-----

Вложения

  • CMS.png
    CMS.png
    136,2 КБ · Просмотры: 163
  • CMS_BidRatio MTF.mq4
    11,9 КБ · Просмотры: 42

GeorgichFX

Новичок форума
Здравствуйте! Сделайте, пожалуйста, чтобы в этом индикаторе был прописан EmptyValue. Индикатор хороший стрелочник, можно попробовать собрать системку из него, для чего и надо этот EmptyValue :(
 

Вложения

  • BetterVol_CDRW_Alert.mq4
    5,7 КБ · Просмотры: 55

mobidik

-----

Вложения

  • BetterVol_CDRW_Alert_1.mq4
    11,1 КБ · Просмотры: 160

Slava78

Элитный участник

Вложения

  • EA_Better.mq4
    31 КБ · Просмотры: 85

Slava78

Элитный участник
Объясните пожалуйста куда исчез третий буфер
"Константа EMPTY_VALUE обычно соответствует значениям индикаторов, которые не показаны на графике" Т.е. вы просто скрыли ее
 
Последнее редактирование:

znn1950

Активный участник
Здравствуйте. Прошу Вас, пожалуйста доработайте мне вот этот советник. Он сейчас входит в рынок по анализу БАРов и цен их закрытия. Это надо убрать, а сделать, чтобы вход был сразу двумя ордерами, Buy и Sell. Далее один уходит в просадку (используя мартингейл, а второй набирает прибыль, закрывая ее по ТР. После закрытия по ТП сразу открывает еще ордер установленным лотом и так далее пока идет просадка.
 

Вложения

  • AutoProfit3.0-mod4.mq4
    1,2 МБ · Просмотры: 32

superhonda498

Новичок форума
Спасибо вам Mobidik огромное за проделанную работу...вы не смогли бы сделать и к этому индикатору такую же функцию как в индикаторе BidRatio ....я пробовал в ставить в код строку (sinput string TXT = "CM_BR"; // ID) у меня к сожалению ничего не получилось.....еще раз спасибо....
Скриншот 01-03-2020 002317.jpg
 

Вложения

  • USD against all.ex4
    20,3 КБ · Просмотры: 17
  • USD against all.mq4
    17,3 КБ · Просмотры: 30

mobidik

-----
Спасибо вам Mobidik огромное за проделанную работу...вы не смогли бы сделать и к этому индикатору такую же функцию как в индикаторе BidRatio ....я пробовал в ставить в код строку (sinput string TXT = "CM_BR"; // ID) у меня к сожалению ничего не получилось.....еще раз спасибо....
Посмотреть вложение 368945
:)
 

Вложения

  • USD against all - ID.png
    USD against all - ID.png
    112,2 КБ · Просмотры: 198
  • USD against all - ID.mq4
    17,6 КБ · Просмотры: 52

mobidik

-----
mobidik
У EMPTY_VALUE должно быть какое-то нулевое значение.
Что значит: "какое-то нулевое значение"? Это чему равно или по проще спрошу - это сколько?
Вы просили:
Сделайте, пожалуйста, чтобы в этом индикаторе был прописан EmptyValue.
результат на скрине.

PS.
То, что разные не нулевые значения у индюков - следствие заданного отступа стрелок от баров - проверить самостоятельно.
И да, так же по гуглить значения Empty и EmptyValue.
 

Вложения

  • BetterVol_CDRW_Alert_1.png
    BetterVol_CDRW_Alert_1.png
    63,9 КБ · Просмотры: 178

##Alex##

Элитный участник

Вложения

  • Semafor+123Triangles.mq4
    11,6 КБ · Просмотры: 40
  • Semafor+123Triangles.ex4
    26,6 КБ · Просмотры: 23

Elvis Burunduk

Элитный участник
Что значит: "какое-то нулевое значение"? Это чему равно или по проще спрошу - это сколько?
Вы просили:
результат на скрине.

PS.
То, что разные не нулевые значения у индюков - следствие заданного отступа стрелок от баров - проверить самостоятельно.
И да, так же по гуглить значения Empty и EmptyValue.
Саня, Моби , не кипятись ... чел просто походу не в теме что EMPTY_VALUE это совсем не нулевое значение и не отрицательное значение .... А вполне себе положительное числовое выражение.... 2147483647 (0x7FFFFFFF)

Все мы наступали на грабли в начале пути... ;););)
 
Последнее редактирование:

ale9551

Активный участник
Уважаемые программисты!
Доработайте пожалуйста советник.
В оригинале советник открывает сделки,в зависимости от выбранного направления(1-только селл,0-только бай),после сработки тейка или стоп лосса,следующая позиция сразу же открывается лотом,умноженным на KLot от предыдущего.(Если StopTake=0,то после СЛ,если StopTake=1,то после ТП)
Мне необходимо следущее:
1)Советник должен открывать позиции,в соответствии с встроенным в терминал индикатором МА(соответственно нужно добавить настройки МА в бот,а выбор направления сделки убрать)
2)Сделки советник должен открывать(строго на открытии нового бара,а не сразу после закрытия предыдущей позиции),если цена ниже МА,то советник открывает сделку в БАЙ,если выше МА,то в СЕЛЛ!
Если закрылись в профит,то сл сделка открывается предыдущим лотом,если закрылись в лосс,то сл сделка открывается с умножением КLot.Если StopTake=1,то наоборот умножаем лот после профита!
Заранее благодарен!
 

Вложения

  • Martin.mq4
    3,7 КБ · Просмотры: 23

ale9551

Активный участник
Уважаемые программисты!
Доработайте пожалуйста советник.
В оригинале советник открывает сделки,в зависимости от выбранного направления(1-только селл,0-только бай),после сработки тейка или стоп лосса,следующая позиция сразу же открывается лотом,умноженным на KLot от предыдущего.(Если StopTake=0,то после СЛ,если StopTake=1,то после ТП)
Мне необходимо следущее:
1)Советник должен открывать позиции,в соответствии с встроенным в терминал индикатором МА(соответственно нужно добавить настройки МА в бот,а выбор направления сделки убрать)
2)Сделки советник должен открывать(строго на открытии нового бара,а не сразу после закрытия предыдущей позиции),если цена ниже МА,то советник открывает сделку в БАЙ,если выше МА,то в СЕЛЛ!
Если закрылись в профит,то сл сделка открывается предыдущим лотом,если закрылись в лосс,то сл сделка открывается с умножением КLot.Если StopTake=1,то наоборот умножаем лот после профита!
Заранее благодарен!
Извиняюсь,но выбор направлению торговли прошу оставить(1-торгуем в СЕЛЛ,0-торгуем талько в БАЙ),думал применять в настройках советника Long only и Short only,но тогда советник будет работать некорректно.
Также прикрепляю Moving Average
 

Вложения

  • moving_averages.mq4
    5,3 КБ · Просмотры: 21

Anna89

Новичок форума
Здравствуйте. Помогите пожалуйста, уже долго бьюсь над одним вопросом. Есть 4 индикатора WPR с разными параметрами и когда они сходятся в нижней границе они дают сигнал на покупку и их может быть несколько. Нужно чтобы ордер открывался на каждом сигнале . А у меня получается только одна сделка. Что нужно подправить в коде, чтобы это исправить?
На рис показано: В - открытие сделок, 1 - одно закрытие всех сделок.

Код:
for(i=OrdersTotal(); i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderMagicNumber()==Magic || OrderSymbol()==Symbol())
              {
               if(OrderType()==OP_BUY)
                  pos++;
               if(OrderType()==OP_SELL)
                  pos++;
              }
           }

         double wpr21 = iWPR(Symbol(),0,21,0);
         double wpr55 = iWPR(Symbol(),0,55,0);
         double wpr77 = iWPR(Symbol(),0,77,0);
         double wpr277 = iWPR(Symbol(),0,277,0);

         if(wpr21>Vverh && wpr55>Vverh  && wpr77>Vverh  && wpr277>Vverh)
           {
            RefreshRates();

            if(StopLoss>0)
               sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
            if(TakeProfit>0)
               tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);

            ticket = OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,sl,tp,"",Magic,0,Red);
            Alert("Открылась сделка на Sell");
            if(ticket<0)
              {
               Print("Позиция Sell не открылась, ошибка: ",GetLastError());
               return;
              }
           }
         if(wpr21<Vniz && wpr55<Vniz  && wpr77<Vniz  && wpr277<Vniz)
           {
            RefreshRates();

            if(StopLoss>0)
               sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
            if(TakeProfit>0)
               tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);

            ticket = OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,sl,tp,"",Magic,0,Blue);
            Alert("Открылась сделка на Buy");
            if(ticket<0)
              {
               Print("Позиция Buy не открылась, ошибка: ",GetLastError());
               return;
              }
           }
        }
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    90,9 КБ · Просмотры: 184

AlexeNP

Гуру форума
Здравствуйте. Помогите пожалуйста, уже долго бьюсь над одним вопросом. Есть 4 индикатора WPR с разными параметрами и когда они сходятся в нижней границе они дают сигнал на покупку и их может быть несколько. Нужно чтобы ордер открывался на каждом сигнале . А у меня получается только одна сделка. Что нужно подправить в коде, чтобы это исправить?
На рис показано: В - открытие сделок, 1 - одно закрытие всех сделок.

Код:
for(i=OrdersTotal(); i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderMagicNumber()==Magic || OrderSymbol()==Symbol())
              {
               if(OrderType()==OP_BUY)
                  pos++;
               if(OrderType()==OP_SELL)
                  pos++;
              }
           }

         double wpr21 = iWPR(Symbol(),0,21,0);
         double wpr55 = iWPR(Symbol(),0,55,0);
         double wpr77 = iWPR(Symbol(),0,77,0);
         double wpr277 = iWPR(Symbol(),0,277,0);

         if(wpr21>Vverh && wpr55>Vverh  && wpr77>Vverh  && wpr277>Vverh)
           {
            RefreshRates();

            if(StopLoss>0)
               sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
            if(TakeProfit>0)
               tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);

            ticket = OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,sl,tp,"",Magic,0,Red);
            Alert("Открылась сделка на Sell");
            if(ticket<0)
              {
               Print("Позиция Sell не открылась, ошибка: ",GetLastError());
               return;
              }
           }
         if(wpr21<Vniz && wpr55<Vniz  && wpr77<Vniz  && wpr277<Vniz)
           {
            RefreshRates();

            if(StopLoss>0)
               sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
            if(TakeProfit>0)
               tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);

            ticket = OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,sl,tp,"",Magic,0,Blue);
            Alert("Открылась сделка на Buy");
            if(ticket<0)
              {
               Print("Позиция Buy не открылась, ошибка: ",GetLastError());
               return;
              }
           }
        }
смотрим строки 7-10
если pos++; то какая разница какой у ордера тип?
дальше все смешнее
if(wpr21>Vverh && wpr55>Vverh && wpr77>Vverh && wpr277>Vverh) говорит о том, что все условия должны сойтись, и только тогда будет открыт ордер....
если необходимо, чтобы каждое условие открывало свой ордер, то их нужно разделить.. например
if(wpr21>Vverh)
открытие 1-го ордера
if(wpr55>Vverh)
открытие 2-го ордера и т.д.
 
Верх