Компиляция индикаторов и экспертов под новые билды MetaTrader 4

  • Автор темы Автор темы Veles-tm
  • Дата начала Дата начала

cmillion

Гуру форума
Уважаемые программисты, помогите подправить советник. Нужно, чтобы открывал новые колена не тогда когда первая позиция в убытке, а тогда когда первая позиция в плюсе. Другими словами, чтобы советник добавлял новое колено не к убыточным позициям, а к прибыльным согласно настройкам. Сам, ковырял, но не получается... Ну и если не сложно, то добавить контроль спреда, чтобы не открывал позицию или не добавлял колено если спред шире установленного значения. А то задолбали последнее время расширять спреды до невероятных размеров.

Кстати код отвечающий за постановку колен такой:
PHP:
Expand Collapse Copy
//=========================================== покупаем колено ==================================================
   if (!AddOrdersInd) {
      if (totalB > 0 && totalB <= MaxTradesB) {  
         if ((NormalizeDouble((LastBuyPrice - Ask)/Point, 0)) >= PipStepB) {
            iLotsB = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTradesB), lotdecimal);
         
            ticket = OPENORDER ("Buy");
            Sleep (3000);
            if (ticket < 0) {
               BarControl_0 = False;
               return (0);
            }
            
            BarControl_0 = BarControl;
         }
      }   
   }
Но как я его не пытался изменить, он не работает так как нужно.
:)
 

Volvos80

Новичок форума
cmillion
Я понимаю что код простой, но методом тыка (по незнанию) не получается. (
Эту строку if ((NormalizeDouble((LastBuyPrice - Ask)/Point, 0)) >= PipStepB) { изменил так: if ((NormalizeDouble((Ask - LastBuyPrice)/Point, 0)) >= PipStepB) {
Советник стал открывать колена для Buy в прибыльной зоне, но открывает сразу кучу позиций (
 

cmillion

Гуру форума
cmillion
Я понимаю что код простой, но методом тыка (по незнанию) не получается. (
Эту строку if ((NormalizeDouble((LastBuyPrice - Ask)/Point, 0)) >= PipStepB) { изменил так: if ((NormalizeDouble((Ask - LastBuyPrice)/Point, 0)) >= PipStepB) {
Советник стал открывать колена для Buy в прибыльной зоне, но открывает сразу кучу позиций (

Ищите ошибку там, где LastBuyPrice
 

Volvos80

Новичок форума
Ищите ошибку там, где LastBuyPrice
Именно в этой части кода, которую я привел? Или по всему коду советника? Я уже два дня его ковыряю, не смог ничего сделать и решил написать в ветку. Я вообще нулевой в программировании.
Если не сложно, дайте правильный код, вставить я смогу )
 
Последнее редактирование:

cmillion

Гуру форума
Именно в этой части кода, которую я привел? Или по всему коду советника? Я уже два дня его ковыряю, не смог ничего сделать и решил написать в ветку. Я вообще нулевой в программировании.
Если не сложно, дайте правильный код, вставить я смогу )

В той части кода нигде не видно какое значение присваивается данной переменной.
 

Olga788

Интересующийся
Может кто попробует скомпилировать его с #property strict что бы он нормально отображался на графике.
Просто после компиляции он не отоброжаеться на графике.

Очень нужно.Заранее спасибо
 

Вложения

borman777

Заблокирован
можно подправить под новый билд и скомпилированный в формат ех4 Спасибо;)
 

Вложения

Последнее редактирование:
Верх