Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 424

 

Прошу помощи у профи

Никак не могу протестировать советник(

2014.01.12 13:18:56 2014.01.10 22:41 MACD Sample USDCHF,M1: OrderSend error 4107
2014.01.12 13:18:56 2014.01.10 22:41 MACD Sample USDCHF,M1: invalid price 0.90324000 for OrderSend function

Может кто исправить?

Файлы:
macdxsample.mq4  11 kb
 
Здравствуйте, уважаемые трейдер. Скажите, пожалуйста, как можно заменять текст из функции Comment() ? У меня в int init() стоит Comment() и я хочу, чтобы в int start() появился бы другой текст. Можно просто заново вызвать ее и дать новые параметры? В этом случае старые параметры сотрутся? И мне нужно, чтобы это действовало бы в коде mql 4.
 

По задумке до открытия нового бара жёлтая линия индикатора должна рисовать зигзаг между последними четырьмя вершинами +100-100 MAX MIN соответственно

и заканчиваться на High[0].

Как я понимаю стиль DRAW_SECTION соединяет ненулевые значения индикаторного буфера отрезками. Получается ломанная непрерывная линия.

Распечатка Alert подтверждает, что присутствуют корректные ненулевые значения в ZigzagBuffer3. Именно по значениям этого буфера должен строиться

производный ZZ .

После открытия нового бара индикатор станет " подарком " для халявщиков.

P.S. Мой терминал не рисует куски желтой линии, которые видны на картинках VladislavVG. Таблетка(лекарство) - попытка помочь участника форума

SPLXGF ( #property indicator_buffers 4 //изменено с indicator_buffers 1).

 

cm-MA 29,04,13.rar

Может кто декомпелировать и немного поменять некоторые параметры????

Файлы:
cm-max29f04n13.ex4  2478 kb
 
vitali-attila:
Здравствуйте, уважаемые трейдер. Скажите, пожалуйста, как можно заменять текст из функции Comment() ? У меня в int init() стоит Comment() и я хочу, чтобы в int start() появился бы другой текст. Можно просто заново вызвать ее и дать новые параметры? В этом случае старые параметры сотрутся? И мне нужно, чтобы это действовало бы в коде mql 4.


Новый текст сам сотрет старый. Где нужно смело ставьте Comment(" Новый текст ");

Возможно написать несколько строк: Comment("mas[00]= ",mas[0],"\n",

--- по аналогии ---

"mas[01]= ",mas[1]);

 
kosmos0975:

По задумке до открытия нового бара жёлтая линия индикатора должна рисовать зигзаг между последними четырьмя вершинами +100-100 MAX MIN соответственно

и заканчиваться на High[0].

Как я понимаю стиль DRAW_SECTION соединяет ненулевые значения индикаторного буфера отрезками. Получается ломанная непрерывная линия.

Распечатка Alert подтверждает, что присутствуют корректные ненулевые значения в ZigzagBuffer3. Именно по значениям этого буфера должен строиться

производный ZZ .

После открытия нового бара индикатор станет " подарком " для халявщиков.

P.S. Мой терминал не рисует куски желтой линии, которые видны на картинках VladislavVG. Таблетка(лекарство) - попытка помочь участника форума

SPLXGF ( #property indicator_buffers 4 //изменено с indicator_buffers 1).

Вы мыслите категориями взломщика кодов ))))))))))). Не нужно ни какое "лекарство" - нужно правильно указать количество буферов для отображения, что Вам и посоветовали: поскольку Вы отображаете 4-й буфер (нумерация идет как в С - от нуля)

SetIndexBuffer(3,ZigzagBuffer3);

то соответственно их должно быть 4-ре, а не меньше, как у Вас в коде.

Индикатор и строится по значениям буфера ZigzagBuffer3 - я же показал Вам на картинках.

 
Респект и уважуха тем, кто мониторит правильность работы МТ4.
Таких как Вы я и хотел услышать.
Кому интересно, могут посмотреть, что я хотел. Завтра будет по другому.
Файлы:
 

Спасибо всем, кто помог решить проблему.

Буду думать над вариантом 2. Возможно теперь проблем не будет.

Прикрепил скриншот. Не вижу. Попробую ещё. Выдает ошибку загрузки.

В другой раз получится.

 
kosmos0975:


В другой раз получится.


Странная привычка уповать на другой раз. Иногда другого раза может и не быть
 
Ребят, столкнулся с непонятной проблемой. Вот на этом участку кода тестер просто зависает: ошибок в журнале нет, процессор работает на максимуме, но тестер никаких действий не делает.
ticket = OrderSend(Symbol(),OP_SELL,FindRightLot(OP_BUY),Bid,Slippage,0,0,"",Magic,0,Red);
                  if (ticket>0)
                  CloseHalfOrders(OP_BUY);
                  ModifyOrders(OP_BUY);// зависает на этом моменте, после закрытия ордеров
                  ModifyOrders(OP_SELL);

///вот эта функция
void ModifyOrders(int otype) // усреднение профита всех ордеров сетки с выставлением тейк-профита
{
  double avgprice = 0,                      
         order_lots = 0;
         
         price = 0;
  for (int i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
          price +=OrderOpenPrice() * OrderLots();
          order_lots +=OrderLots(); 
       } 
    }
  }
  avgprice = NormalizeDouble (price / order_lots, Digits);
  if (otype == OP_BUY) TP = NormalizeDouble (avgprice + TakeProfit * Point,Digits);
  if (otype == OP_SELL) TP = NormalizeDouble (avgprice - TakeProfit * Point,Digits);
  
  
  for (i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       
         OrderModify(OrderTicket(), OrderOpenPrice(),0,TP,0);
       }
   }
  
}
Причина обращения: