Можно ли прервать работу функции и при определённом условии возобновить её работу? - страница 2

 
Mike_Kharkov:
   пока что для себя хотел написать какого то примитивного +- мартингейла.
так прямым ходом в кодабазу, так такого добра навалом
 
Mike_Kharkov:
  

    void  EventKillTimer();
    Имеете ввиду эту функцию?

Не торопитесь) Почитайте те ссылки которые я вам дал, там сказано про события и про функции-обработчики этих событий.

UPD: рекомендую вот еще

 
i_logic:

Не торопитесь) Почитайте те ссылки которые я вам дал, там сказано про события и про функции-обработчики этих событий.

UPD: рекомендую вот еще

   все что мне удалось уловить из этих ссылок это:
  

OnTick

Событие NewTick генерируется только для экспертов при поступлении нового тика по символу, к графику которого прикреплен эксперт. Функцию OnTick() бесполезно определять в пользовательском индикаторе или скрипте, поскольку событие NewTick для них не генерируется.

Событие Tick генерируется только для экспертов, но это не означает, что эксперты обязаны иметь функцию OnTick(), так как для экспертов генерируются не только события NewTick, но и события Timer, BookEvent и ChartEvent. Должна быть объявлена с типом void, параметров не имеет:

P.S. Хоть убейте не пойму, что здесь можно почерпнуть полезного в данном случае. )
(до этого я уже читал не раз эти строки.)

 
sanyooooook:
так прямым ходом в кодабазу, так такого добра навалом
   Хотелось бы самому разобраться с нуля - как все это делать.
   Брать готовый код для меня пока что не вариант.
   Там слишком много непонятных для меня проверок и вообще много лишнего(для моего уровня) пока что.
   Пытаюсь двигаться(поэтапно) от простого к сложному..
   P.S. На MQL5(в отличии от 4-ой версии) мне найти не удалось к стати мартингейла.
 
Mike_Kharkov:
   Хотелось бы самому разобраться с нуля - как все это делать.
   Брать готовый код для меня пока что не вариант.
   Там слишком много непонятных для меня проверок и вообще много лишнего(для моего уровня) пока что.
   Пытаюсь двигаться(поэтапно) от простого к сложному..
   P.S. На MQL5(в отличии от 4-ой версии) мне найти не удалось к стати мартингейла.
Именно на готовых примерах с кодом и надо разбираться.
 
i_logic:
Проверку наличия позиции вставьте перед отправкой ордера на открытие.

    Есть ещё такой момент в коде:


    void OnTick()
  {
  
  MqlTradeRequest request={0};
 
  request.action = TRADE_ACTION_DEAL;                                        // Тип выполняемого действия
  request.symbol = _Symbol;                                                  // Имя торгового инструмента
  request.volume = 0.01;                                                     // Запрашиваемый объем сделки в лотах
  request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);                     // Цена 
  request.type = ORDER_TYPE_BUY;                                             // Тип ордера
  request.tp = 0;                                                            // Цена, по которой сработает Take Profit ордер при движении цены в благоприятном направлении
  request.sl = 0;                                                            // Цена, по которой сработает Stop Loss ордер при движении цены в неблагоприятном направлении
  request.type_filling = ORDER_FILLING_FOK;                                  // Тип ордера по исполнению
  request.type_time = ORDER_TIME_GTC;
                                   
  MqlTradeResult result={0};
 
  int position_total_1 =  PositionsTotal();
 
  if(position_total_1>=1)
     {
      return;
     };
 
  bool send1 = OrderSend(request,result);
 
  Print(" Код возврата торгового сервера: ", result.retcode);
  Print(" Количество открытых позиций: ", position_total_1);
 
//---
  

  };

 

  Количество открытых позиций: 0

  2014.07.25 15:50:39    Core 1    2014.06.23 00:02:00    Количество открытых позиций: 0
  (Должна быть одна.)
 
   Но код возврата сервера вроде отображает правильно.(10009)

   Пробовал менять код местами(десяток вариантов) - и всегда не отображает в журнале либо кол-во позиций(пишет 0) либо код возврата равен нулю.
   В чем может быть причина?

 
Contender:
Именно на готовых примерах с кодом и надо разбираться.
   в любом случае мартингейла я искал уже давно для MT-5 платформы.
   (в том числе и для того что бы на код посмотреть.)
   Но найти не удалось вариант с открытым кодом.
   P.S. Если кто то скинет ссылку - буду признателен.
 
Mike_Kharkov:
   в любом случае мартингейла я искал уже давно для MT-5 платформы.
   (в том числе и для того что бы на код посмотреть.)
   Но найти не удалось вариант с открытым кодом.
   P.S. Если кто то скинет ссылку - буду признателен.

https://www.mql5.com/ru/code/1160

https://www.mql5.com/ru/code/1113 

20_200 expert_v4.2_AntS
20_200 expert_v4.2_AntS
  • голосов: 20
  • 2012.10.04
  • Dmitry Fedoseev
  • www.mql5.com
Эксперт с очень простым анализом цены - по двум барам и с увеличением лота после убытка
Причина обращения: