Ответить в теме
Страница 1 из 11
1 2 ... Последняя ◄╝

Показаны сообщения: с 1 по 20 из 211

Тема: MQL4: Некоторые полезные функции

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2014-07-09   14:02
    Лучший ответ #1
    Накопленные выплаты 169700 RUB

    Отправка маркет-ордера на сервер.

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">int SendMarketOrder</span><span style="color: #007700">(</span><span style="color: #0000BB">int Type</span><span style="color: #007700">, </span><span style="color: #0000BB">double Lots</span><span style="color: #007700">, </span><span style="color: #0000BB">int TP</span><span style="color: #007700">, </span><span style="color: #0000BB">int SL</span><span style="color: #007700">, </span><span style="color: #0000BB">int Magic</span><span style="color: #007700">, </span><span style="color: #0000BB">string Cmnt</span><span style="color: #007700">, </span><span style="color: #0000BB">int</span><span style="color: #007700">&amp; </span><span style="color: #0000BB">Error</span><span style="color: #007700">){</span><span style="color: #0000BB">double Price</span><span style="color: #007700">, </span><span style="color: #0000BB">Take</span><span style="color: #007700">, </span><span style="color: #0000BB">Stop</span><span style="color: #007700">;</span><span style="color: #0000BB">int Ticket</span><span style="color: #007700">, </span><span style="color: #0000BB">Slippage</span><span style="color: #007700">, </span><span style="color: #0000BB">Color</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">; </span><span style="color: #0000BB">bool Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">False</span><span style="color: #007700">;if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Функция SendMarketOrder"</span><span style="color: #007700">);while(!</span><span style="color: #0000BB">IsStopped</span><span style="color: #007700">()){if(!</span><span style="color: #0000BB">IsExpertEnabled</span><span style="color: #007700">()){</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">ERR_TRADE_DISABLED</span><span style="color: #007700">;Print(</span><span style="color: #DD0000">"Работа эксперта запрещена! Кнопка "</span><span style="color: #0000BB">Эксперты</span><span style="color: #DD0000">" отжата."</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Работа эксперта разрешена, кнопка "</span><span style="color: #0000BB">Эксперты</span><span style="color: #DD0000">" нажата."</span><span style="color: #007700">);if(!</span><span style="color: #0000BB">IsConnected</span><span style="color: #007700">()){</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">ERR_NO_CONNECTION</span><span style="color: #007700">;Print(</span><span style="color: #DD0000">"Связь с сервером отсутствует!"</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Связь с сервером установлена"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">IsTradeContextBusy</span><span style="color: #007700">()){if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговый поток занят!"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ожидаем 3 сек..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Sleep</span><span style="color: #007700">(</span><span style="color: #0000BB">3000</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">True</span><span style="color: #007700">;continue;}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговый поток свободен"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Delay </span><span style="color: #007700">|| (</span><span style="color: #0000BB">LastTickTime </span><span style="color: #007700">!= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(),</span><span style="color: #0000BB">MODE_TIME</span><span style="color: #007700">))) {if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Обновляем котировки"</span><span style="color: #007700">);</span><span style="color: #0000BB">RefreshRates</span><span style="color: #007700">();</span><span style="color: #0000BB">LastTickTime </span><span style="color: #007700">= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(),</span><span style="color: #0000BB">MODE_TIME</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">False</span><span style="color: #007700">;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Котировки актуальны"</span><span style="color: #007700">);}switch(</span><span style="color: #0000BB">Type</span><span style="color: #007700">){case </span><span style="color: #0000BB">OP_BUY</span><span style="color: #007700">:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Инициализируем параметры для BUY-ордера"</span><span style="color: #007700">);</span><span style="color: #0000BB">Price </span><span style="color: #007700">= </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Ask</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">);</span><span style="color: #0000BB">Take </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">TP </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">+ </span><span style="color: #0000BB">TP </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Stop </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">SL </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">- </span><span style="color: #0000BB">SL </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Color </span><span style="color: #007700">= </span><span style="color: #0000BB">Blue</span><span style="color: #007700">;break;case </span><span style="color: #0000BB">OP_SELL</span><span style="color: #007700">:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Инициализируем параметры для SELL-ордера"</span><span style="color: #007700">);</span><span style="color: #0000BB">Price </span><span style="color: #007700">= </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Bid</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">);</span><span style="color: #0000BB">Take </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">TP </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">- </span><span style="color: #0000BB">TP </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Stop </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">SL </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">+ </span><span style="color: #0000BB">SL </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Color </span><span style="color: #007700">= </span><span style="color: #0000BB">Red</span><span style="color: #007700">;break;default:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Тип ордера не соответствует требованиям."</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}</span><span style="color: #0000BB">Slippage </span><span style="color: #007700">= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(), </span><span style="color: #0000BB">MODE_SPREAD</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Slippage = "</span><span style="color: #007700">,</span><span style="color: #0000BB">Slippage</span><span style="color: #007700">);if(</span><span style="color: #0000BB">IsTradeAllowed</span><span style="color: #007700">()){if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговля разрешена, отправляем ордер..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">= </span><span style="color: #0000BB">OrderSend</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(), </span><span style="color: #0000BB">Type</span><span style="color: #007700">, </span><span style="color: #0000BB">Lots</span><span style="color: #007700">, </span><span style="color: #0000BB">Price</span><span style="color: #007700">, </span><span style="color: #0000BB">Slippage</span><span style="color: #007700">, </span><span style="color: #0000BB">Stop</span><span style="color: #007700">, </span><span style="color: #0000BB">Take</span><span style="color: #007700">, </span><span style="color: #0000BB">Cmnt</span><span style="color: #007700">, </span><span style="color: #0000BB">Magic</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">Color</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">0</span><span style="color: #007700">){</span><span style="color: #0000BB">Err </span><span style="color: #007700">= </span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();if (</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">4   </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* SERVER_BUSY */</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">129 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* INVALID_PRICE */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">135 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* PRICE_CHANGED */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">137 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* BROKER_BUSY */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">138 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* REQUOTE */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">146 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* TRADE_CONTEXT_BUSY */</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">136 </span><span style="color: #007700">)  </span><span style="color: #FF8000">/* OFF_QUOTES */</span><span style="color: #007700">{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ошибка(OrderSend - "</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">, </span><span style="color: #DD0000">"): "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Err</span><span style="color: #007700">));if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ожидаем 3 сек..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Sleep</span><span style="color: #007700">(</span><span style="color: #0000BB">3000</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">True</span><span style="color: #007700">;continue;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Критическая ошибка(OrderSend - "</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">, </span><span style="color: #DD0000">"): "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Err</span><span style="color: #007700">));</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">Err</span><span style="color: #007700">;break;}}break;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Эксперту запрещено торговать! Снята галка в свойствах эксперта."</span><span style="color: #007700">);</span><span style="color: #FF8000">//Print("Ожидаем 3 сек...");//Sleep(3000);//Delay = True;//continue;</span><span style="color: #007700">break;}}if(</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">)if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ордер отправлен успешно. Тикет = "</span><span style="color: #007700">,</span><span style="color: #0000BB">Ticket</span><span style="color: #007700">);elseif(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ошибка! Ордер не отправлен. (ErrorCode = "</span><span style="color: #007700">, </span><span style="color: #0000BB">Error</span><span style="color: #007700">, </span><span style="color: #DD0000">": "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Error</span><span style="color: #007700">), </span><span style="color: #DD0000">")"</span><span style="color: #007700">);return(</span><span style="color: #0000BB">Ticket</span><span style="color: #007700">);}</span><span style="color: #FF8000">//+------------------------------------------------------------------+</span><span style="color: #0000BB">double IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">bool condition</span><span style="color: #007700">, </span><span style="color: #0000BB">double ifTrue</span><span style="color: #007700">, </span><span style="color: #0000BB">double ifFalse</span><span style="color: #007700">) {if (</span><span style="color: #0000BB">condition</span><span style="color: #007700">) return(</span><span style="color: #0000BB">ifTrue</span><span style="color: #007700">); else return(</span><span style="color: #0000BB">ifFalse</span><span style="color: #007700">);} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2013-11-11   18:36
    Лучший ответ #2
    Накопленные выплаты 1854 RUB

    Приветствую. Вот еще полезная функция, коды ошибок исполнения. Функцию можно просто вставить в свой код и вызывать где надо. Или просто вставить в свой код, оформить в виде комментария и в случае если возникает какая-то ошибка, просто смотреть, что означает эта ошибка.

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">string ErrorDescript</span><span style="color: #007700">(</span><span style="color: #0000BB">int error_code</span><span style="color: #007700">) {</span><span style="color: #0000BB">string error_string</span><span style="color: #007700">;switch(</span><span style="color: #0000BB">error_code</span><span style="color: #007700">) {</span><span style="color: #FF8000">//---- Коды ошибок, возвращаемые торговым сервером:</span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибок"</span><span style="color: #007700">;                                                                                             break;case </span><span style="color: #0000BB">1</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки, но результат неизвестен"</span><span style="color: #007700">;                                                                    break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">;                                                                    break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">;                                                                          break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">;                                              break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">:  </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">:  </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">;                                                                  break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">;                                                                                     break;  case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">;                                                             break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">;                                                                                                break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Новые цены"</span><span style="color: #007700">;                                                                                             break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">;                                            break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">;                                                                             break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">;                                                 break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела, установленного брокером."</span><span style="color: #007700">;                    break;</span><span style="color: #FF8000">//---- Коды ошибок выполнения MQL4-программы:</span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки"</span><span style="color: #007700">;                                                                                            break;case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">;                                                                          break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">;                                                          break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">;                                                           break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">;                                                                           break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">;                                                                 break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">;                                                                     break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">;                                                                                break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">;                                                                                       break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">;                                                                                   break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">;                                                                           break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">;                                                      break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">;                                               break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">;                                                            break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">;                                                          break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">;                                                                 break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">4067</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при выполнении торговой операции"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">;                                                                                break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">;                                                                         break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">;                                                                                    break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">;                                                       break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта."</span><span style="color: #007700">;  break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Длинные позиции не разрешены. Необходимо проверить свойства эксперта."</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Короткие позиции не разрешены. Необходимо проверить свойства эксперта."</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">;                                                                              break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">;                                                                          break;default:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #0000BB">error_code</span><span style="color: #007700">;}return(</span><span style="color: #0000BB">error_string</span><span style="color: #007700">);} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2019-10-14   19:52
    Лучший ответ #3
    Накопленные выплаты 72086 RUB

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Добрый день!Нужна функция сравнения двух рыночных ордеров с указанным типом и ID по размеру лота (>/<)..
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Если кто набросает здесь код этой функции,буду очень признателен..
    Хорошо, напишу вам... только уточните какие есть исходные данные и что нужно получить на выходе функции, цифры или там какие нить слова, чтобы согласовать с вашими дальнейшими действиями.
    Еще такой непонятный момент.. вы написали больше - меньше, но забыли про третье состояние... равенство лотов. Или, при определенных условиях достаточно true/false. Например, лот первого ордера больше второго- true, во всех остальных случаях- false. Уточните.
    Далее.. как минимум, нужны еще их тикеты. Но! если известны тикеты, то тип и ID уже не обязательны. По сему, скорее всего тикеты неизвестны, их нужно найти по каким то признакам, ибо ордеров может быть множество на счете, и с данным типам и с таким ID. Как то так, больше инфы.

    2019-10-17   17:42
    Лучший ответ #4
    Накопленные выплаты 72086 RUB

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Да,их может быть больше..Тикеты здесь не важны..Нужно простое сравнение лотности ордеров с определенным ID(магиком),определенным типом(BUY,SELL),на одном символе..Например:если лот бай1 больше лот сел2 и OrderSymbol() == Symbol(),то TRUE...дальнейшие мои какие-то действия..Из этой функции сделаю уже сам блок в генератор..Заранее извиняюсь за свою некомпетентность,не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его...
    Все равно не добился от вас признаков, по каким выбирать ордера, если их множество. Можно и без тикетов. Вот привел пробный пример, по вашей просьбе. Однако, она не совсем корректная, если в рынке будет больше двух ордеров или один или 2 одного типа. Старайтесь писать код с перспективой на будущее и учитывать все нюансы. Что непонятно, спрашивайте, подредактируем.
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB"></span><span style="color: #FF8000">//+-------------------------------------------------------------------+//| 17.10.2019 ; https://forexdengi.com |//+-------------------------------------------------------------------+//| Описание : Сравнение лотности двух ордеров разных типов |//+-------------------------------------------------------------------+</span><span style="color: #0000BB">bool CompareLot</span><span style="color: #007700">(</span><span style="color: #0000BB">int ot1</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">,</span><span style="color: #0000BB">int ot2</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">,</span><span style="color: #0000BB">int mn</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">) {</span><span style="color: #0000BB">int type</span><span style="color: #007700">,</span><span style="color: #0000BB">k</span><span style="color: #007700">=</span><span style="color: #0000BB">OrdersTotal</span><span style="color: #007700">();</span><span style="color: #0000BB">double lots_1</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">,</span><span style="color: #0000BB">lots_2</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">;</span><span style="color: #0000BB">bool result</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;for(</span><span style="color: #0000BB">i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">k</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">++) {if(</span><span style="color: #0000BB">OrderSelect</span><span style="color: #007700">(</span><span style="color: #0000BB">i</span><span style="color: #007700">, </span><span style="color: #0000BB">SELECT_BY_POS</span><span style="color: #007700">, </span><span style="color: #0000BB">MODE_TRADES</span><span style="color: #007700">)) { </span><span style="color: #FF8000">// Выбор ордера из списка</span><span style="color: #007700">if(</span><span style="color: #0000BB">OrderSymbol</span><span style="color: #007700">() == </span><span style="color: #0000BB">Symbol</span><span style="color: #007700">() &amp;&amp; </span><span style="color: #0000BB">OrderMagicNumber</span><span style="color: #007700">() == </span><span style="color: #0000BB">mn</span><span style="color: #007700">) { </span><span style="color: #FF8000">// Фильтр по символу и по ID</span><span style="color: #0000BB">type</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderType</span><span style="color: #007700">();if(</span><span style="color: #0000BB">type</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">1</span><span style="color: #007700">) continue;if(</span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">OP_BUY </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">ot1</span><span style="color: #007700">) </span><span style="color: #0000BB">lots_1</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderLots</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Заносим баерский лот в переменную</span><span style="color: #007700">if(</span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">OP_SELL </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">ot2</span><span style="color: #007700">) </span><span style="color: #0000BB">lots_2</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderLots</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Заносим селерский лот в переменную</span><span style="color: #007700">}}}if(</span><span style="color: #0000BB">lots_1</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">lots_2</span><span style="color: #007700">) </span><span style="color: #0000BB">result</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">; </span><span style="color: #FF8000">// Сравниваем лотность</span><span style="color: #007700">return (</span><span style="color: #0000BB">result</span><span style="color: #007700">); </span><span style="color: #FF8000">// Возвращаем результат</span><span style="color: #007700">} </span><span style="color: #FF8000">// Вызов функции сравнения лотности ордеров</span><span style="color: #007700">if(</span><span style="color: #0000BB">CompareLot</span><span style="color: #007700">(</span><span style="color: #0000BB">OP_BUY</span><span style="color: #007700">,</span><span style="color: #0000BB">OP_SELL</span><span style="color: #007700">,</span><span style="color: #0000BB">Magic</span><span style="color: #007700">)) {</span><span style="color: #FF8000">// Здесь какие нить действия, если лот ордера бай больше лота ордера селл</span><span style="color: #007700">}else {</span><span style="color: #FF8000">// Здесь какие нить действия, если лот ордера бай меньше лота ордера селл или равен</span><span style="color: #007700">} </span><span style="color: #0000BB"></span> </span> </code>

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его
    Какие то еще есть признаки... например, максимальная-минимальная цена, время открытия, привязка к барам... исходя из логики проектируемого советника. Нужен уникальный признак, чтобы гарантированно выбрать тот или иной ордер

    2011-03-13   13:21
    Лучший ответ #5
    Накопленные выплаты 14514 RUB

    Добрый день.
    Вот и я решил поделиться кодом написал функцию кодов ошибок на русском языке.

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">string error</span><span style="color: #007700">(</span><span style="color: #0000BB">int eer</span><span style="color: #007700">){</span><span style="color: #0000BB">string er</span><span style="color: #007700">;switch(</span><span style="color: #0000BB">eer</span><span style="color: #007700">){</span><span style="color: #FF8000">//---- </span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">:case </span><span style="color: #0000BB">1</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки, но результат неизвестен"</span><span style="color: #007700">;                         break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">;                         break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">;   break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">:  </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">:  </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">;                       break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">;                  break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">;                                                     break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Новые цены - Реквот"</span><span style="color: #007700">;                                         break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">;                                  break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">;      break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела "</span><span style="color: #007700">;  break;</span><span style="color: #FF8000">//---- </span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки"</span><span style="color: #007700">;                                                 break;case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">;               break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">;                break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">;                      break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">;                          break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">;                                     break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">;                                            break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">;                                        break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"eВызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">;          break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">;    break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">;                 break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">;               break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не подтверждена"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">;                      break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">;     break;case </span><span style="color: #0000BB">4067</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при выполнении торговой операции"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">;                                     break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">;                              break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">;                                         break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">;            break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля не разрешена"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Длинные позиции не разрешены"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Короткие позиции не разрешены"</span><span style="color: #007700">;                              break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">;                                   break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4207</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с объектом"</span><span style="color: #007700">;                               break;default:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"unknown error"</span><span style="color: #007700">;}return(</span><span style="color: #0000BB">er</span><span style="color: #007700">);}</span><span style="color: #FF8000">//-------------------------------------------------------------------------------------+ 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>
    Использовать в советнике так
    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">int er</span><span style="color: #007700">=</span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();</span><span style="color: #0000BB">error</span><span style="color: #007700">(</span><span style="color: #0000BB">er</span><span style="color: #007700">); 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2011-12-08   02:05
    Лучший ответ #6
    Накопленные выплаты 18175 RUB

    Цитата Сообщение от WsForex Посмотреть сообщение
    Полезная функция кто не понимает код ошибок
    Добрый день.
    Вот и я решил поделиться кодом написал функцию кодов ошибок на русском языке.
    Цитата Сообщение от WsForex Посмотреть сообщение
    Использовать в советнике так
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB">int er</span><span style="color: #007700">=</span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">(); </span><span style="color: #0000BB">error</span><span style="color: #007700">(</span><span style="color: #0000BB">er</span><span style="color: #007700">) </span><span style="color: #0000BB"></span> </span> </code>
    ;
    А я вот такую написал, использовать ее намного удобнее, функция возвращает код ошибки:
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB"></span><span style="color: #FF8000">//+------------------------------------------------------------------+ </span><span style="color: #0000BB">int Error</span><span style="color: #007700">(</span><span style="color: #0000BB">string event</span><span style="color: #007700">) </span><span style="color: #FF8000">//Error("");</span><span style="color: #007700">{</span><span style="color: #0000BB">string descr</span><span style="color: #007700">;</span><span style="color: #0000BB">int err </span><span style="color: #007700">= </span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();switch(</span><span style="color: #0000BB">err</span><span style="color: #007700">){</span><span style="color: #FF8000">// Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:</span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">: </span><span style="color: #FF8000">/*descr= "Нет ошибки";*/ </span><span style="color: #007700">return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);case </span><span style="color: #0000BB">1</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет ошибки, но результат не известен"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Новые цены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела, установленного брокером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">149</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Попытка открыть противоположную позицию к уже существующей, если хеджирование запрещено"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">150</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Попытка закрыть позицию по инструменту в противоречии с правилом FIFO"</span><span style="color: #007700">; break;</span><span style="color: #FF8000">// Коды ошибок выполнения MQL4 программы:</span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #FF8000">/*descr= "Нет ошибки";*/ </span><span style="color: #007700">return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Вызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Функция не подтверждена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговля не разрешена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Длинные позиции не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Короткие позиции не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4207</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка при работе с объектом"</span><span style="color: #007700">; break;}Print(</span><span style="color: #0000BB">event</span><span style="color: #007700">,</span><span style="color: #DD0000">": "</span><span style="color: #007700">,</span><span style="color: #0000BB">descr</span><span style="color: #007700">,</span><span style="color: #DD0000">", № ошибки - "</span><span style="color: #007700">,</span><span style="color: #0000BB">err</span><span style="color: #007700">); return(</span><span style="color: #0000BB">err</span><span style="color: #007700">);} </span><span style="color: #FF8000">//+------------------------------------------------------------------+ </span><span style="color: #0000BB"></span> </span> </code>
    Пользоваться так - Error("описание контролируемого события"); и все .
    Пример:
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB">int start</span><span style="color: #007700">(){ </span><span style="color: #0000BB">Error</span><span style="color: #007700">(</span><span style="color: #DD0000">"В этом месте"</span><span style="color: #007700">);</span><span style="color: #0000BB">int x </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">/</span><span style="color: #0000BB">x</span><span style="color: #007700">; return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);} </span><span style="color: #0000BB"></span> </span> </code>

    Вложение 181860

    Вложение
    Превью
  2. линк#1
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Получить количество ордеров (рыночных либо отложенных) данного типа.
    MQL-Код:
    
    int OrdersCount(int type){  int orders = 0;  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;    //Опционально    //if (OrderSymbol() != Symbol()) continue;    //Опционально    //if (OrderMagicNumber() != Magic) continue;    if (OrderType() == type) orders++;  }  return (orders);} 
    
    
    

    В эксперте эту функцию можно использовать следующим образом:
    MQL-Код:
    
    int start() {  int BuyCnt = OrdersCount(OP_BUY);  if (BuyCnt > 0) return (0);  ... 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:33.

  3. post_thanks Получено лайков: 1

    Kofa (22.10.2017)

    <title>InstaForex</title><meta name="description" content="InstaForex"><a href="https://instaforex.org/ru/forexcopy_system">InstaForex</a>
  4. линк#2
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Получить время открытия последнего ордера данного типа.
    Смотрим в открытых ордерах и в истории.
    Если не найдено ордеров, удовлетворяющих условиям поиска, возвращаем -1.

    MQL-Код:
    
    datetime GetLastOpenTime(int type) {  datetime tm = -1;  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;        //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }  cnt = HistoryTotal();  for (i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;    //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }  return (tm);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:33.

  5. post_thanks Получено лайков: 2

    udhit (12.05.2016), Незарегистрированный (1 пользователь)

  6. линк#3
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Польза от функции GetLastOpenTime такая.
    Например мы не хотим открывать лонг-ордера чаще чем раз в 2 часа.
    Тогда условие на открытие будет выглядеть так:
    MQL-Код:
    
    if (CurTime() - GetLastOpenTime(OP_BUY) >= 2*60*60) {   OrderSend(Symbol(), OP_BUY, ...} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:34.

  7. post_thanks Получено лайков: 1

    Unregistered (1 пользователь)

  8. линк#4
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Получить дату следующего дня:
    MQL-Код:
    
      datetime Time0 = CurTime();  datetime Tomorrow = Time0 + 24*60*60;  int day = TimeDayOfYear(Tomorrow);  int month = TimeMonth(Tomorrow);  int year = TimeYear(Tomorrow); 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:34.

  9. линк#5
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Получить тикет последнего закрытого ордера из истории.
    Если тип ордера не указан, берется самый последний ордер любого типа.
    Если ордеров, отвечающих указанным критерию не найдено, возвращает -1.
    MQL-Код:
    
    int GetLastOrderHist(int type = -1) {  int ticket = -1;  datetime dt = 0;  int cnt = HistoryTotal();      for (int i=0; i < cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;    //Опционально    if (OrderSymbol() != Symbol()) continue;    //Опционально    if (OrderMagicNumber() != Magic) continue;        if (type != -1 && OrderType() != type) continue;        if (OrderCloseTime() > dt) {      dt = OrderCloseTime();      ticket = OrderTicket();    }  }    return (ticket);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:35.

  10. линк#6
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Функция для расчета рабочего лота по следующим условиям.
    lotmin - стартовый размер лота.
    lotmax - верхнее ограничение на размер лота.
    Если последняя сделка закрылась в +, то увеличиваем лот на величину lotstep.
    Как только последняя сделка закрылась в -, возвращаемся к lotmin.
    Т.е. при наступлении серии положительных сделок мы увеличиваем нагрузку на лот.

    Будем использовать функцию GetLastOrderHist, описанную выше.
    MQL-Код:
    
    // --- Параметры управления капиталом ---extern bool uplot = true; - вкл/выкл изменение величины лотаextern int lastprofit = 1; - принимает значения -1/1. -1 - увеличение лота после минусовой сделки до первой плюсовой.1 - увеличение лота после плюсовой сделки до первой минусовой.extern double lotmin = 0.1; - начальное значениеextern double lotmax = 0.5; - потолокextern double lotstep = 0.1; - приращение лота double GetLots() {    double lot = lotmin;  if (!uplot) return (lot);    int ticket = GetLastOrderHist();  if (ticket == -1) return (lot);    if (!OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY)) return (lot);  if (OrderProfit()*lastprofit < 0) return (lot);    lot = MathMin(OrderLots() + lotstep, lotmax);  return (lot);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:35.

  11. линк#7
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Трейлинг-стоп.
    MinProfit - когда профит достигает указанное количество пунктов, трейлинг начинает работу
    TrailingStop - величина трала
    TrailingStep - шаг
    l - префикс для лонгов
    s - префикс для шортов
    MQL-Код:
    
    extern bool UseTrailing = true;extern int lMinProfit = 30;extern int sMinProfit = 30;extern int lTrailingStop = 15;extern int sTrailingStop = 15;extern int lTrailingStep = 5;extern int sTrailingStep = 5;if (UseTrailing) TrailingPositions();  void TrailingPositions() {  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;    if (OrderSymbol() != Symbol()) continue;            if (OrderType() == OP_BUY) {      if (Bid-OrderOpenPrice() > lMinProfit*Point) {        if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, OrderTakeProfit(), 0, Blue);        }      }    }    if (OrderType() == OP_SELL) {      if (OrderOpenPrice()-Ask > sMinProfit*Point) {        if (OrderStopLoss() > Ask+(sTrailingStop+sTrailingStep-1)*Point || OrderStopLoss() == 0) {          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+sTrailingStop*Point, OrderTakeProfit(), 0, Blue);        }      }    }  }  } 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:35.

  12. post_thanks Получено лайков: 1

    gastyc (10.12.2016)

  13. линк#8
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    2 метода - Buy и Sell. Помимо открытия позиции нормализуют цены и выводят в лог входные параметры. Возвращают номер тикета, либо -1 в случае ошибки. После открытия ордера выдерживается установленный таймаут.
    MQL-Код:
    
    #include <stdlib.mqh>#include <stderror.mqh>int SleepOk = 2000;int SleepErr = 6000;int Slippage = 3;//~~~~~int Buy(string symbol, double lot, double price, double sl, double tp, int magic, string comment="") {  int dig = MarketInfo(symbol, MODE_DIGITS);  price = NormalizeDouble(price, dig);  sl = NormalizeDouble(sl, dig);  tp = NormalizeDouble(tp, dig);      string _lot = DoubleToStr(lot, 1);  string _price = DoubleToStr(price, dig);  string _sl = DoubleToStr(sl, dig);  string _tp = DoubleToStr(tp, dig);  Print("Buy "", symbol, "", ", _lot, ", ", _price, ", ", Slippage, ", ", _sl, ", ", _tp, ", ", magic, ", "", comment, """);  int res = OrderSend(symbol, OP_BUY, lot, price, Slippage, sl, tp, comment, magic);  if (res >= 0) {    Sleep(SleepOk);    return (res);  }              int code = GetLastError();  Print("Error opening BUY order: ", ErrorDescription(code), " (", code, ")");  Sleep(SleepErr);      return (-1);}int Sell(string symbol, double lot, double price, double sl, double tp, int magic, string comment="") {  int dig = MarketInfo(symbol, MODE_DIGITS);  price = NormalizeDouble(price, dig);  sl = NormalizeDouble(sl, dig);  tp = NormalizeDouble(tp, dig);    string _lot = DoubleToStr(lot, 1);  string _price = DoubleToStr(price, dig);  string _sl = DoubleToStr(sl, dig);  string _tp = DoubleToStr(tp, dig);  Print("Sell "", symbol, "", ", _lot, ", ", _price, ", ", Slippage, ", ", _sl, ", ", _tp, ", ", magic, ", "", comment, """);    int res = OrderSend(symbol, OP_SELL, lot, price, Slippage, sl, tp, comment, magic);  if (res >= 0) {    Sleep(SleepOk);    return (res);  }              int code = GetLastError();  Print("Error opening SELL order: ", ErrorDescription(code), " (", code, ")");  Sleep(SleepErr);      return (-1);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:36.

  14. линк#9
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Открыть позицию в заданное время.
    Код удобнее всего поместить в скрипт, который работает в бесконечном цикле. Это даст возможность открыться в нужное время, не дожидаясь прихода первого тика.

    OpenTime - время открытия.
    OpenPeriod - рабочий интервал, мин
    MQL-Код:
    
      extern string OpenTime = "00:00";  extern int OpenPeriod = 10;  datetime tm0 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OpenTime);  datetime tm1 = tm0 + OpenPeriod*60;  if (CurTime() < tm0 || CurTime() > tm1) return;  //Открываем позицию либо ставим ордер 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:36.

  15. линк#10
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Эксперт, закрывающий ордера по рынку с указанным тейкпрофитом.
    TakeProfit можно ставить 1, 2, 3
    MQL-Код:
    
    extern int TakeProfit = 2;extern int Slippage = 3;//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void init () {}void deinit() {}void start() {  if (TakeProfit == 0) return;  int cnt = OrdersTotal();  for (int i=cnt-1; i >= 0; i--) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;    if (OrderSymbol() != Symbol()) continue;      int type = OrderType();    if (type == OP_BUY) {      if (Bid > OrderOpenPrice() + TakeProfit*Point)        OrderClose(OrderTicket(), OrderLots(), Bid, Slippage);       }      if (type == OP_SELL) {      if (Ask < OrderOpenPrice() - TakeProfit*Point)         OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);     }  }} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:36.

  16. линк#11
    Частый гость
    Dom1no стараюсь положительно себя зарекомендовать Аватар для Dom1no
    Регистрация:
    04.01.2010
    Сообщений:
    198
    Накопленные выплаты (Подробнее):
    574 RUB
    Поставил(а) лайков:
    0
    Получено лайков:   29
    в 23 сообщениях
    15%
    Подскажите,а как можно определить тип последнего ордера?


  17. линк#12
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Можно так:
    MQL-Код:
    
    datetime LastBuyTm = GetLastOrderOpenTime(OP_BUY);datetime LastSellTm = GetLastOrderOpenTime(OP_SELL);// LastBuyTm > LastSellTm: последним был BUY ордер// LastSellTm > LastBuyTm: последним был SELL ордерdatetime GetLastOrderOpenTime(int type) {  datetime tm = -1;  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;        //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }    cnt = HistoryTotal();  for (i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;       //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }  return (tm);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:36.

  18. линк#13
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Функция возвращает длину цепочки ордеров с положительным профитом. Считаем с конца history.
    MQL-Код:
    
    int GetLastPositiveOrdersCount() {  int PosCnt = 0;  int cnt = HistoryTotal();  for (int i = cnt-1; i >=0; i--) {        if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;    //if (OrderSymbol() != Symbol()) continue;    //if (OrderMagicNumber() != Magic) continue;          int type = OrderType();    if (type != OP_BUY && type != OP_SELL) continue;          if (OrderProfit() < 0) break;    PosCnt++;  }  return (PosCnt);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:36.

  19. линк#14
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Подскажите,а как можно определить тип последнего ордера?
    Можно еще так:
    MQL-Код:
    
    datetime LastBuyTm = GetLastOrderOpenTime(OP_BUY);datetime LastSellTm = GetLastOrderOpenTime(OP_SELL);// LastBuyTm > LastSellTm: последним был BUY ордер// LastSellTm > LastBuyTm: последним был SELL ордерdatetime GetLastOrderOpenTime(int type) {  datetime tm = -1;  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;        //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }    cnt = HistoryTotal();  for (i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;       //Опционально    if (OrderSymbol() != Symbol()) continue;    if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        tm = MathMax(tm, OrderOpenTime());  }  return (tm);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:37.

  20. линк#15
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Способ программного закрытия терминала.
    MQL-Код:
    
    #include <WinUser32.mqh>int start() {  int hwnd = WindowHandle(Symbol(), Period());  int hwnd_parent = 0;  while(!IsStopped()) {    hwnd = GetParent(hwnd);    if (hwnd == 0) break;    hwnd_parent = hwnd;  }  if (hwnd_parent != 0)    PostMessageA(hwnd_parent, WM_CLOSE, 0, 0);  return (0);} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:37.

  21. линк#16
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Полезная функция split и примеры ее использования.

    split - разделяет элементы строки и возвращает их в виде массива.

    Параметры:
    [OUT] string& arr[] - возвращаемый массив строк.
    [IN] string str - входная строка.
    [IN] string sym - разделитель.[/code]

    Пример:
    MQL-Код:
    
      string text = "1; 2; 3; 4; 5";  string dig[];  split(dig, text, ";");//Теперь массив dig будет содержать 5 элементов:  "1", "2", "3", "4", "5". 
    
    
    



    MQL-Код:
    
    void split(string& arr[], string str, string sym) {  ArrayResize(arr, 0);  string item;  int pos, size;    int len = StringLen(str);  for (int i=0; i < len;) {    pos = StringFind(str, sym, i);    if (pos == -1) pos = len;        item = StringSubstr(str, i, pos-i);    item = StringTrimLeft(item);    item = StringTrimRight(item);        size = ArraySize(arr);    ArrayResize(arr, size+1);    arr[size] = item;        i = pos+1;  }} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:38.

  22. post_thanks Получено лайков: 1

    Tekora (07.11.2018)

  23. линк#17
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Oграничить колличество лоссов подряд в течнии дня
    Пример: 2 лосса в день подряд - отключение доступа к торговле
    MQL-Код:
    
     int orders = 0;    int cnt = HistoryTotal();  for (int i=0; i < cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;        //if (OrderSymbol() != Symbol()) continue;    //if (OrderMagicNumber() != Magic) continue;        if (CurTime() - OrderCloseTime() > 24*60*60) continue;        int type = OrderType();    if (type == OP_BUY || type == OP_SELL)     {      if (OrderProfit() < 0) orders++;      }  }    if (orders > 2) return; 
    
    
    

    Т.е. смотрим ордера за последние 24 часа с отрицательным профитом.

    Последний раз редактировалось Gold; 27.11.2015 в 19:38.

  24. линк#18
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Закрытие всех лонгов или всех шортов по достижению профита в 1$.
    MQL-Код:
    
    extern double Profit = 1;extern int Slippage = 3;if (AccountProfit() > Profit) {    CloseOrders(OP_BUY);    //or CloseOrders(OP_SELL);}void CloseOrders(int type) {  int cnt = OrdersTotal();  for (int i=cnt-1; i>=0; i--)   {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;    //if (OrderSymbol() != Symbol()) continue;    //if (OrderMagicNumber() != Magic) continue;        if (OrderType() != type) continue;        if (type == OP_BUY)     {      RefreshRates();      OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage);      continue;    }    if (type == OP_SELL)    {       RefreshRates();       OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage);       continue;    }  }} 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:39.

  25. линк#19
    В начале пути
    tsn стараюсь положительно себя зарекомендовать Аватар для tsn
    Регистрация:
    15.02.2010
    Сообщений:
    5
    Накопленные выплаты (Подробнее):
    56 RUB
    Поставил(а) лайков:
    1
    Получено лайков:   0
    в 0 сообщениях
    0%
    ПодписатьсяПодписаться
    Подписано 0
    Подскажите, как реализовать следующие торговые критерии:выставление отложенного ордера по закрытию очередного? Например, закрылся Buy по ТР, а необходимо выставить SellStop на удалении в 15 пунктах от предыдущего Sell Stop (т.е. подвигать отложенники вслед за ценой)?


  26. 55pct
  27. линк#20
    Кандидат форумных наук
    twin хорошая репутация twin хорошая репутация twin хорошая репутация twin хорошая репутация Аватар для twin
    Регистрация:
    04.03.2010
    Сообщений:
    1,397
    Накопленные выплаты (Подробнее):
    105010 RUB
    Поставил(а) лайков:
    870
    Получено лайков:   565
    в 382 сообщениях
    40%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от tsn Посмотреть сообщение
    Подскажите, как реализовать следующие торговые критерии:выставление отложенного ордера по закрытию очередного? Например, закрылся Buy по ТР, а необходимо выставить SellStop на удалении в 15 пунктах от предыдущего Sell Stop (т.е. подвигать отложенники вслед за ценой)?
    Это вам надо обратиться за скриптами.....я так понимаю вас интересует трейлинг?Поищите в нете ,там есть нужные вам ,бесплатные скриптики для мт4 с инструкцией поустановке.
    Правда я себе пытался поставтьодин такой,но он не встал,а на полощаке в проге возник сбой.Видно скрипт был сыроват.

    иду уже...


Страница 1 из 11
1 2 ... Последняя ◄╝

Подписанные на тему (39)

Похожие темы

  1. Некоторые секреты МТ4
    от Андрей Сырбу в разделе Трейдерский софт, компьютерное оборудование
    Replies: 2384
    Последнее сообщение: 14.02.2021, 23:18
  2. Некоторые психотехники
    от сват в разделе Психология трейдера
    Replies: 2160
    Последнее сообщение: 29.12.2020, 18:21
  3. FAQ: Полезные функции форума (подписка, уведомления, черновики, и др.)
    от Странник_РУ в разделе Вопросы к администрации форума
    Replies: 9
    Последнее сообщение: 16.09.2020, 12:55
  4. MQL5: Некоторые полезные функции
    от Gold в разделе MQL-программирование, АТС
    Replies: 25
    Последнее сообщение: 26.02.2019, 10:54
  5. Банкомат. Некоторые особенности
    от Volangott в разделе Свободное общение
    Replies: 0
    Последнее сообщение: 27.03.2014, 16:30

Метки этой темы