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

SS_1975

Прохожий
Доброго дня, всем. Господа программисты, помогите в шаблон вставить функции переноса в безубыток и частичного закрытия ордера. БУ по наступлении условий (достижении уровня), только этот уровень буду брать с индикатора, а не задавать в настройках...и обе функции работать дожны в паре...то есть цена достигла уровня (значение берем с индикатора через iCustom), советник тут же закрыл часть ордера (задается в настройках как % от лота) и перенес в БУ. Достигли следующего уровня (с того же индикатора) выполнилась функция полного закрытия ордера. Сама пытался вставить из других советников, не работает...Выручайте други))) время исправлять карму пришло)))
 

Вложения

  • Shablon.mq4
    44,2 КБ · Просмотры: 24

ale9551

Активный участник
Уважаемые программисты!
Добавьте пожалуйста в советники функцию максимально допустимого спреда при торговле(от 0 включительно).
Заранее благодарен!
Уважаемые программисты!
Обратите пожалуйста внимание на мой пост
 

MakarFX

Элитный участник
Уважаемые программисты!
Добавьте пожалуйста в советники функцию максимально допустимого спреда при торговле(от 0 включительно).
Заранее благодарен!
Если спред больше указанного - открывать ордера не будет
 

Вложения

  • CyberiaTrader.mq4
    104,8 КБ · Просмотры: 42

lexshur

Новичок форума
Здравствуйте уважаемые программисты! Попробовал написать советник по каналу без перерисовки. Он почему то не хочет открывать ордера на покупку, открывает только на продажу и не по линиям канала, а как то по своему. Голову уже сломал, ни чего не получается сам учусь, опыта нет. Помогите пожалуйста и если можно подскажите, где не правильно у меня в коде.
 

Вложения

  • TMA_Fair.mq4
    8,1 КБ · Просмотры: 23
  • TMA_Fair2.mq4
    12,2 КБ · Просмотры: 22

MakarFX

Элитный участник
Здравствуйте уважаемые программисты! Попробовал написать советник по каналу без перерисовки. Он почему то не хочет открывать ордера на покупку, открывает только на продажу и не по линиям канала, а как то по своему. Голову уже сломал, ни чего не получается сам учусь, опыта нет. Помогите пожалуйста и если можно подскажите, где не правильно у меня в коде.
Ошибка здесь
Код:
   if (Bid >= PriceHigh && CountBuy() > 0)                                                  // Для
   {                                                                                        // закрытия
      for(int i = OrdersTotal() -1; i>= 0; i--)                                             // ордеров
      {                                                                                     // по
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))                                    // скользящим
         {                                                                                  // средним
            if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
                if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))
                   Print("Ошибка закрытия ордера на покупку!");              
         }
      }
   }
if (Bid >= PriceHigh && CountBuy() > 0)
 

lexshur

Новичок форума
Ошибка здесь
Код:
   if (Bid >= PriceHigh && CountBuy() > 0)                                                  // Для
   {                                                                                        // закрытия
      for(int i = OrdersTotal() -1; i>= 0; i--)                                             // ордеров
      {                                                                                     // по
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))                                    // скользящим
         {                                                                                  // средним
            if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
                if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))
                   Print("Ошибка закрытия ордера на покупку!");             
         }
      }
   }
if (Bid >= PriceHigh && CountBuy() > 0)
Попробовал переделал всё тоже самое, ни чего не изменилось. Также одни sell открывает и по линиям канала не работает. Помогите!!!!!
 

MakarFX

Элитный участник
Так я так и сделал, а у меня всё равно ерунда какая то. Совсем не так, как у вас.
Загрузи то, что я выложил и попробуй
P.S. еще один момент, поставь первый бар, т.к. на нулевом баре показания прыгают
Код:
   PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 1);
   PriceLow  = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 1);
 

ale9551

Активный участник
У тебя в коде стоит "<=" а надо ">="
И все работает
Посмотреть вложение 480049
Неплохой советник получился!
Не могли бы вы добавить контроль спреда в TMA_Fair2(как вы добавили в CyberiaTraderSpread перед этим),и MoneyManagment(работает при lot=0.00),как это реализовано в советнике Nevalyashka_ (2)?
Заранее благодарен!
 

Вложения

  • CyberiaTraderSpread.mq4
    104,8 КБ · Просмотры: 24
  • Nevalyashka_ (2).mq4
    9,2 КБ · Просмотры: 26
  • TMA_Fair2.mq4
    12,2 КБ · Просмотры: 24

lexshur

Новичок форума
А, что сделать в советнике, что бы он с разными индексами валют работал? Я в другом терминале хочу попробовать, а там валюты с индексом m.
 

MakarFX

Элитный участник
А, что сделать в советнике, что бы он с разными индексами валют работал? Я в другом терминале хочу попробовать, а там валюты с индексом m.
Там везде стоит текущий символ, так что суффиксы и приставки не должны влиять.
 

lexshur

Новичок форума
Загрузи то, что я выложил и попробуй
P.S. еще один момент, поставь первый бар, т.к. на нулевом баре показания прыгают
Код:
   PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 1);
   PriceLow  = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 1);
Загрузи то, что я выложил и попробуй
P.S. еще один момент, поставь первый бар, т.к. на нулевом баре показания прыгают
Код:
   PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 1);
   PriceLow  = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 1);
Терминал перегрузил и котировки подгрузил и всё заработало. Спасибо за участие.
 

MakarFX

Элитный участник
Неплохой советник получился!
Не могли бы вы добавить контроль спреда в TMA_Fair2(как вы добавили в CyberiaTraderSpread перед этим),и MoneyManagment(работает при lot=0.00),как это реализовано в советнике Nevalyashka_ (2)?
Заранее благодарен!
контроль спреда в TMA_Fair2
 

Вложения

  • TMA_Fair2.mq4
    12,7 КБ · Просмотры: 45
Верх