Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 5 из 11
Первая ... 4 5 6 ... Последняя ◄╝

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

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

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2014-07-09   14:02
    Лучший ответ #1
    Накопленные выплаты 169750 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
    Накопленные выплаты 72568 RUB

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

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

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Да,их может быть больше..Тикеты здесь не важны..Нужно простое сравнение лотности ордеров с определенным ID(магиком),определенным типом(BUY,SELL),на одном символе..Например:если лот бай1 больше лот сел2 и OrderSymbol() == Symbol(),то TRUE...дальнейшие мои какие-то действия..Из этой функции сделаю уже сам блок в генератор..Заранее извиняюсь за свою некомпетентность,не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его...
    Все равно не добился от вас признаков, по каким выбирать ордера, если их множество. Можно и без тикетов. Вот привел пробный пример, по вашей просьбе. Однако, она не совсем корректная, если в рынке будет больше двух ордеров или один или 2 одного типа. Старайтесь писать код с перспективой на будущее и учитывать все нюансы. Что непонятно, спрашивайте, подредактируем.
    MQL-Код:
    <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 Посмотреть сообщение
    Использовать в советнике так
    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>
    ;
    А я вот такую написал, использовать ее намного удобнее, функция возвращает код ошибки:
    MQL-Код:
    <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("описание контролируемого события"); и все .
    Пример:
    MQL-Код:
    <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. линк#81
    Кандидат форумных наук
    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. линк#84
    Кандидат форумных наук
    no
     
    fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация Аватар для fore-x
    Регистрация:
    18.03.2011
    Пол:
    Мужчина
    Сообщений:
    1,716
    Накопленные выплаты (Подробнее):
    18175 RUB
    Поставил лайков:
    440
    Получено лайков:   588
    в 401 сообщениях
    34%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от fore-x Посмотреть сообщение
    функция запоминает текущий эквити и начинает считать проценты от него.
    Когда количество ордеров будет равно нулю, эквити снова запоминается и т.д

    Количество выведенных и введенных средств на торговый счет - не учитывается.
    Что-то вчера день не удачный был, не получалось что-то кодить, голова не работала (но это выяснилось лишь сегодня ). Ошибки исправлены, принимайте работу:

    MQL-Код:
    
    double StartEquity(string name , double value)  {  if(GlobalVariableCheck(name)==false) {GlobalVariableSet(name, value); return(value);}  if(OrdersTotal()==0) {GlobalVariableSet(name, value); return(value);}  if(OrdersTotal()> 0) return(GlobalVariableGet(name));  }bool PercentEquity(string global_name, double max_percent, double min_percent)  {  double percent = AccountEquity()*100/StartEquity(global_name, AccountEquity());  if(percent > max_percent) return(true);  if(percent < min_percent) return(true);  return(false);  } 
    
    
    
    Вызов делаем так:
    MQL-Код:
    
    PercentEquity(string global_name = "StartEquity", int global_takeprofit = 120, double global_stoploss = 80.2); 
    
    
    
    Когда процент достигнет максимума или минимума, данная функция подскажет нам об этом.

    P.S Количество выведенных и введенных средств на торговый счет - Учитывается!!!

    Последний раз редактировалось Gold; 23.11.2012 в 22:59. Причина: MQL

  5. линк#85
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    а если добавить парочку констант, то будет более функционально

    MQL-Код:
    
    double StartEquity(string name , double value)  {  if(GlobalVariableCheck(name)==false) {GlobalVariableSet(name, value); return(value);}  if(OrdersTotal()==0) {GlobalVariableSet(name, value); return(value);}  if(OrdersTotal()> 0) return(GlobalVariableGet(name));  }#define EQ_MAX 1;#define EQ_MIN 2;#define EQ_ZERO 0;int PercentEquity(string global_name, double max_percent, double min_percent)  {  double percent = AccountEquity()*100/StartEquity(global_name, AccountEquity());  if(percent > max_percent) return(EQ_MAX);  if(percent < min_percent) return(EQ_MIN);  return(EQ_ZERO);  } 
    
    
    


    а в коде можно использовать:
    MQL-Код:
    
    if(PercentEquity("StartEquity", 120, 80) == EQ_MAX){   Print("URAAAAA");}else{   if(PercentEquity("StartEquity", 120, 80) == EQ_MIN){      Print("USE MARTIN!!!!!!");   }} 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 23:00. Причина: MQL

  6. линк#86
    Кандидат форумных наук
    no
     
    fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация fore-x хорошая репутация Аватар для fore-x
    Регистрация:
    18.03.2011
    Пол:
    Мужчина
    Сообщений:
    1,716
    Накопленные выплаты (Подробнее):
    18175 RUB
    Поставил лайков:
    440
    Получено лайков:   588
    в 401 сообщениях
    34%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от artamir Посмотреть сообщение
    а если добавить парочку констант, то будет более функционально
    Я проще сделал:

    MQL-Код:
    
    #property indicator_chart_windowvoid start()  {  PercentEquity(120, 80);  }string PercentEquity(double max_percent, double min_percent)  {  double percent, equity, start_equity; string global_name = "";  if(AccountEquity() > 0) equity = AccountEquity(); else return(" ");    if(global_name == "")    {    global_name = "StartEquity "+DoubleToStr(AccountNumber(),0)+" ";    if(IsDemo() == true) global_name = "StartEquity Demo "+DoubleToStr(AccountNumber(),0)+" ";    if(IsTesting() == true) global_name = "StartEquity Testing ";    }    if(GlobalVariableCheck(global_name)==false) {GlobalVariableSet(global_name, equity); return(" ");}  if(OrdersTotal()==0) {GlobalVariableSet(global_name, equity); start_equity = equity;}  if(OrdersTotal()> 0) start_equity = GlobalVariableGet(global_name);    percent = equity*100/start_equity;  Comment("AccountEquity ",AccountEquity(),"\n", global_name, start_equity,"\npercent ", percent,"%");  if(percent > max_percent) return("Max");  if(percent < min_percent) return("Min");  return(" ");  } 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 23:00. Причина: MQL

  7. линк#87
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    На мой взгляд, возвращать строку - это не очень хорошо. Велика вероятность ошибиться в написании текста возвращаемого значения. По этому, если есть такая возможность, я стараюсь каким-либо образом сделать их (возвращаемые/используемые значения) константами.


  8. линк#88
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    libA.double_PrintArray2

    Печатает двумерный числовой массив в файл, который будет находиться в папке "experts\files".
    Причем, при каждом обращении к процедуре, будет печататься новый файл.

    MQL-Код:
    
    //==================================================  ================================================void libA.double_PrintArray2(double &a[][], int d = 4, string fn = "PrintArray_"){//..    /*        >Ver    :    0.0.3        >Date    :    2012.08.15        >Hist:        >Descr:            Printing array to file.        >VARS:            &a[][]   :    массив            d         :    количество знаков после запятой.            fn        :    имя файла     */    static int    i;        i++;    //------------------------------------------------------    int ROWS = ArrayRange(a, 0);    int COLS = ArrayRange(a,1);        //------------------------------------------------------    fn = fn+i+".arr";        //------------------------------------------------------    int handle = FileOpen(fn, FILE_CSV|FILE_WRITE, "\t");        for(int idx_1 = 0; idx_1 < ROWS; idx_1++){        for(int idx_2 = 0; idx_2 < COLS; idx_2++){            FileWrite(handle, idx_1, idx_2, DoubleToStr(a[idx_1][idx_2], d));        }    }        if(handle != 0) FileClose(handle);    }//. 
    
    
    


    В прицепе скрипт проверки работы процедуры.
    paperclip Вложения

    Последний раз редактировалось Gold; 23.11.2012 в 23:00. Причина: MQL

  9. линк#89
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    libA.double_SaveToFile2

    Сохраняет двумерный массив вещественных чисел в текстовый файл.
    Каждый элемент массива сохраняется отдельной форматной строкой.

    MQL-Код:
    
    void libA.double_SaveToFile2(double &a[][], string fn, int d = 4){//..    /*        >Ver    :    0.0.1        >Date    :    2012.09.04        >Hist:            @0.0.1@2012.09.04@artamir    []        >Desc:            Сохраняет массив в файл.            форматная строка, которая будет записана в файл:            @idx1_valIdx1@idx2_valIdx2@val_val                        пример: a[43][5] = 20.77            @idx1_43@idx2_5@val_20.77        >VARS:            a[][]    - массив            fn        - имя файла            d        - количество знаков после запятой.    */            int ROWS = ArrayRange(a, 0);    int COLS = ArrayRange(a, 1);        int H = FileOpen(fn, FILE_CSV|FILE_WRITE);        //------------------------------------------------------    for(int idx1 = 0; idx1 < ROWS; idx1++){//..                //--------------------------------------------------        for(int idx2 = 0; idx2 < COLS; idx2++){//..                        //----------------------------------------------            string str = "@idx1_"+idx1                        +"@idx2_"+idx2                        +"@val_"+DoubleToStr(a[idx1][idx2], d);                                    //----------------------------------------------            FileWrite(H, str);        }//.    }//.        //------------------------------------------------------    FileFlush(H);        //------------------------------------------------------    FileClose(H);    }//. 
    
    
    


    В прицепе файл, который получается на выходе.
    paperclip Вложения

    Последний раз редактировалось Gold; 23.11.2012 в 23:01. Причина: MQL

  10. линк#90
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Далее будет опубликована группа функций для работы со структурой.
    Вернее со строковым аналогом структуры.

    libStruc.StringKeyValue

    Возвращает строковое значение по имени ключа из форматной строки.
    Строка задается в формате:

    <ФОРМАТНАЯСТРОКА>

    <ФОРМАТНАЯСТРОКА> = <КЛЮЧЗНАЧЕНИЕ>[КЛЮЧЗНАЧЕНИЕ]*

    <КЛЮЧЗНАЧЕНИЕ> = (<Разделитель><ИмяКлюча><Значение>)

    Пример: "@p_1234@w987.12"

    <РАЗДЕЛИТЕЛЬ> = Заданный программистом символ-разделитель. По умолчанию = '@' (без ковычек)

    <ИМЯКЛЮЧА> = Уникальное в Структуре имя ключа

    В примере использовались имена ключей: 'p_' и 'w'

    <ЗНАЧЕНИЕ> = Значение ключа.

    MQL-Код:
    
    string libStruc.StringKeyValue(string str = "", string key = "@p", string defolt = "-1", string delimeter = "@"){//..    /*        >Ver    :    0.0.2        >Date    :    2012.04.04        >History:        >Description:            @str = incoming string of the form "@p123456@l5@w3@d1"; p,l,w,d - name of keys            @key = <@x>; where @-separator, x-name of key                         on defolt return parent ticket            if key not found, return defolt value    */    int lPosStart = -1;        //start position of key name    int lPosEnd = -1;        //end position of key name    string d = delimeter;   //разделитель    //---    if(StringFind(key,d,0) == -1){        key = d + key;    }    //---    lPosStart    = StringFind(str,key,0);        if(lPosStart == -1){        return(defolt);    }    //---    int lKeyLen    = StringLen(key);    lPosEnd        = StringFind(str,d,lPosStart+1);    // find position of "@" in str after lPosStart     lPosStart    = lPosStart + lKeyLen;    int    len        = iif(lPosEnd == -1, -1, lPosEnd - lPosStart);    //---    return(StringSubstr(str, lPosStart, len));}//. 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 23:01. Причина: MQL

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

    SimpleJeka1487 (17.11.2012)

  12. линк#91
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Функции, которые возвращают значения заданного типа по заданному ключу из структуры.

    MQL-Код:
    
    //==================================================  ========int libStruc.KeyValue_int(string str, string key = "@p"){//..    /*        >Ver    :    0.0.1        >Date    :    2012.04.05        >History:            >Description:            return int value by key from format string    */        return(StrToInteger(libStruc.StringKeyValue(str,ke  y)));}//.//==================================================  ========double libStruc.KeyValue_double(string str, string key = "@p"){//..    /*        >Ver    :    0.0.1        >Date    :    2012.04.05        >History:            >Description:            return double value by key from format string    */        return(StrToDouble(libStruc.StringKeyValue(str,key  )));}//.//==================================================  ========string libStruc.KeyValue_string(string str, string key = "@p"){//..    return(libStruc.StringKeyValue(str,key));}//. 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 23:01. Причина: MQL

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

    SimpleJeka1487 (17.11.2012)

  14. линк#92
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    libA.double_ReadFromFile2

    Заполняет переданный массив из значений, хранящихся в файле

    MQL-Код:
    
    //==================================================  ========void libA.double_ReadFromFile2(double &a[][], string fn){//..    /*        >Ver    :    0.0.1        >Date    :    2012.09.04        >Hist:            @0.0.1@2012.09.04@artamir    []        >Desc:            Read array from file.            format string for read:            @idx1_valIdx1@idx2_valIdx2@val_val                        exemple: a[43][5] = 20.77            @idx1_43@idx2_5@val_20.77        >VARS:            a[][]    - array            fn        - filename    */            //------------------------------------------------------    ArrayResize(a, 0);        //------------------------------------------------------    int H = FileOpen(fn, FILE_CSV|FILE_READ);        //------------------------------------------------------    while(!FileIsEnding(H)){//..        string str = FileReadString(H);        int idx1 = libStruc.KeyValue_int(str, "@idx1_");        int idx2 = libStruc.KeyValue_int(str, "@idx2_");        double val = libStruc.KeyValue_double(str, "@val_");                //--------------------------------------------------        int ROWS = ArrayRange(a, 0);                //--------------------------------------------------        if(idx1 >= ROWS){            ArrayResize(a, idx1+1);        }                //--------------------------------------------------        a[idx1][idx2] = val;    }//.}//. 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 22:54. Причина: MQL

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

    SimpleJeka1487 (17.11.2012)

  16. линк#93
    Кандидат форумных наук
    harbor хорошая репутация harbor хорошая репутация harbor хорошая репутация harbor хорошая репутация Аватар для harbor
    Регистрация:
    20.09.2012
    Пол:
    Мужчина
    Сообщений:
    1,057
    Накопленные выплаты (Подробнее):
    4934 RUB
    Поставил лайков:
    144
    Получено лайков:   356
    в 263 сообщениях
    34%
    ПодписатьсяПодписаться
    Подписано 0
    хотелось бы найти функцию зеркального отображения графика
    вроде можно сделать через скрипт period converter, подставив значения под единицу, но нужно чтобы таймфрейм не менялся, а тот же оставался
    вобщем я не смог пока сделать..


  17. линк#94
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от harbor Посмотреть сообщение
    хотелось бы найти функцию зеркального отображения графика
    вроде можно сделать через скрипт period converter, подставив значения под единицу, но нужно чтобы таймфрейм не менялся, а тот же оставался
    вобщем я не смог пока сделать..
    А какой уровень нужно принять за середину, по отношению к которой будем зеркалить?


  18. линк#95
    Кандидат форумных наук
    harbor хорошая репутация harbor хорошая репутация harbor хорошая репутация harbor хорошая репутация Аватар для harbor
    Регистрация:
    20.09.2012
    Пол:
    Мужчина
    Сообщений:
    1,057
    Накопленные выплаты (Подробнее):
    4934 RUB
    Поставил лайков:
    144
    Получено лайков:   356
    в 263 сообщениях
    34%
    ПодписатьсяПодписаться
    Подписано 0
    Да наверное уже не надо, тут нашел программку, которая весь экран переворачивает)) если поместить ярлык в панель быстрого запуска и запускать при открытом терминале, получим то что нужно - перевернутый график со всеми линиями и т.д.
    вложил в сообщение, пробуйте
    paperclip Вложения


  19. линк#96
    Кандидат форумных наук
    Скромняжка
     
    Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Аватар для Tekora
    Регистрация:
    26.06.2011
    Сообщений:
    1,758
    Накопленные выплаты (Подробнее):
    33438 RUB
    Поставил(а) лайков:
    211
    Получено лайков:   533
    в 425 сообщениях
    30%
    ПодписатьсяПодписаться
    Подписано 0
    подсчитывает размер убытка ордера с заданным тикером в пунктах
    MQL-Код:
    
    int LossOrder(int ticket){
    //------------вспомогательные переменные-----------
       int cnt, total, res;
    //-------------------------------------------------
    total=OrdersTotal();//общее количество открытых и отложенных ордеров
        for(cnt=0;cnt<total;cnt++)//цикл по ордерам
          {
          if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
             {
             Print("Ошибка выбора ордера", GetLastError());
             return(-1);
             }
             if(OrderTicket( ) == ticket)//нашли нужный ордер
             {
                if(OrderType()==OP_BUY)// нашли отркытый ордер Buy
                {
                //определение убытка в пунктах для длинной позиции
                res=(Bid-OrderOpenPrice())/Point;
                   if(res>=0)//ордер в плюсе - убытка нет
                   {
                   return(0);
                   }
                break;//выход из цикла по ордерам
                }
                if(OrderType()==OP_SELL)// нашли отркытый ордер Sell
                {
                //определение убытка в пунктах для короткой позиции
                res=(Ask-OrderOpenPrice())/Point;
                   if(res<=0)//ордер в плюсе - убытка нет
                   {
                   return(0);
                   }
                 break;//выход из цикла  по ордерам
                }
             }//конец условия по тиккеру
           }//конец цикла по ордерам
    return(res);
    } 
    
    
    


  20. линк#97
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Сразу несколько функций для расчетов фракталов:

    Оговорюсь, что фракталы рассчитываются на текущем инструменте и текущем таймфрейме.

    MQL-Код:
    
    iFR.Set() 
    
    
    
    Устанавливает глобальные настройки фрактала.

    iFR.NL - Количество баров слева от центрального бара. (глобальная переменная)
    iFR.NR - Количество баров справа. (глобальная переменная)

    MQL-Код:
    
    iFR.IsUp(int fb = 1) 
    
    
    
    - проверяет, если бар с заданным индексом является верхним фракталом.
    MQL-Код:
    
    iFR.IsDw(int fb = 1) 
    
    
    
    - проверяет, если бар с заданным индексом является нижним фракталом.

    MQL-Код:
    
        int    iFR.NL    = 1;                                        //Nearest left bars    int    iFR.NR    = 1;                                        //Nearest right bars        int iFR.Set(int nl=1, int nr=1){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    set fractal bars.    */        iFR.NL = nl;        iFR.NR = nr;    }        bool iFR.IsUp(int fb = 1){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    check if bar with index fb is up fractal    */            bool isUpFr = false;        bool f = true;                int i = -1;                //-------------------------------------------------        if(fb < iFR.NR){            return(false);        }                //--------------------------------------------------        for(i = fb; i > fb - iFR.NR; i--){                        //----------------------------------------------            if(iHigh(NULL, 0, i) < iHigh(NULL, 0, i-1)){                f = false;            }        }                        //--------------------------------------------------        if(f){            for(i = fb; i < fb + iFR.NL; i++){                if(iHigh(NULL, 0, i) < iHigh(NULL, 0, i+1)){                    f = false;                }            }        }                isUpFr = f;                return(isUpFr);    }        bool iFR.IsDw(int fb = 1){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    check if bar with index fb is down fractal    */            bool isDwFr = false;        bool f = true;                int i = -1;                //-------------------------------------------------        if(fb < iFR.NR){            return(false);        }                //--------------------------------------------------        for(i = fb; i > fb - iFR.NR; i--){                        //----------------------------------------------            if(iLow(NULL, 0, i) > iLow(NULL, 0, i-1)){                f = false;            }        }                        //--------------------------------------------------        if(f){            for(i = fb; i < fb + iFR.NL; i++){                if(iLow(NULL, 0, i) > iLow(NULL, 0, i+1)){                    f = false;                }            }        }                isDwFr = f;                return(isDwFr);    } 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 22:55. Причина: MQL

  21. линк#98
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Начало

    iFR.getNearstUp

    int startBar : индекс бара, начиная с которого будет производиться поиск ближайшего верхнего фрактала.



    MQL-Код:
    
    int iFR.getNearstUp(int startBar = 1){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    return index of bar of nearst up fractal    */            bool f = false;        int i = startBar-1;                while(!f && i < Bars){            i++;                        if(iFR.IsUp(i)){                f = true;            }        }                return(i);    } 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 22:56. Причина: MQL

  22. линк#99
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    iFR.getNearstDw

    int startBar : индекс бара, начиная с которого будет производиться поиск ближайшего нижнего фрактала.

    MQL-Код:
    
    int iFR.getNearstDw(int startBar = 1){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    return index of bar of nearst down fractal    */            bool f = false;        int i = startBar-1;                while(!f && i < Bars){            i++;                        if(iFR.IsDw(i)){                f = true;            }        }                return(i);    } 
    
    
    


    Возвращает индекс бара ближайшего фрактала.

    Последний раз редактировалось Gold; 23.11.2012 в 22:57. Причина: MQL

  23. линк#100
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    iFR.getNearestUpPrice

    Возвращает цену ближайшего верхнего фрактала.

    Поиск ближайшего верхнего фрактала начинается со
    MQL-Код:
    
    startBar 
    
    
    


    MQL-Код:
    
    double iFR.getNearestUpPrice(int startBar){    /*        >Ver    :    0.0.1        >Date    :    2012.11.13        >Hist    :            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    return price by nearest up fractal    */            int fb = iFR.getNearstUp(startBar);                return(iHigh(NULL, 0, fb));    } 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 22:57. Причина: MQL

  24. линк#101
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    iFR.getNearestDwPrice

    Возвращает цену ближайшего нижнего фрактала

    Поиск фрактала начинается с
    MQL-Код:
    
    startBar 
    
    
    


    MQL-Код:
    
    double iFR.getNearestDwPrice(int startBar){    /*        >Ver    :    0.0.2        >Date    :    2012.11.13        >Hist    :            @0.0.2@2012.11.13@artamir    []            @0.0.1@2012.11.13@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    return price by nearest up fractal    */            int fb = iFR.getNearstDw(startBar);        return(iLow(NULL, 0, fb));    } 
    
    
    

    Последний раз редактировалось Gold; 23.11.2012 в 22:57. Причина: MQL

  25. линк#102
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Пример использования:

    Индикатор на основе настраиваемых фракталов.

    MQL-Код:
    
    //+------------------------------------------------------------------+//|                                                          iFR.mq4 |//|                                          Copyright 2012, artamir |//|                                                 forexmd.ucoz.org |//|                                                     elt.ucoz.org |//|                                                   eltth.ucoz.org |//|                                                [email]artamir@yandex.ru[/email] |//+------------------------------------------------------------------+#property copyright "Copyright 2012, artamir"#property link      "forexmd.ucoz.org"#property indicator_chart_window#property indicator_buffers 2#property indicator_color1 LightGreen#property indicator_color2 Red#include <iFractal.mqh>//--- input parametersextern int       Left=2;extern int       Right=2;//--- buffersdouble U[];double D[];//+------------------------------------------------------------------+//| Custom indicator initialization function                         |//+------------------------------------------------------------------+int init()  {//---- indicators   SetIndexStyle(0,DRAW_ARROW);   SetIndexArrow(0,217);   SetIndexBuffer(0,U);   SetIndexEmptyValue(0,0.0);   SetIndexStyle(1,DRAW_ARROW);   SetIndexArrow(1,218);   SetIndexBuffer(1,D);   SetIndexEmptyValue(1,0.0);//----   return(0);  }//+------------------------------------------------------------------+//| Custom indicator deinitialization function                       |//+------------------------------------------------------------------+int deinit()  {//----   //----   return(0);  }//+------------------------------------------------------------------+//| Custom indicator iteration function                              |//+------------------------------------------------------------------+int start()  {   iFR.Set(Left, Right);     int    ic=IndicatorCounted();//----   int lim = Bars - ic + Right;      for(int i = lim; i >= 0; i--){      if(iFR.IsUp(i)){         U[i] = iHigh(NULL, 0, i)+5*Point;      }            if(iFR.IsDw(i)){         D[i] = iLow(NULL, 0, i)-5*Point;      }   }//----   return(0);  }//+------------------------------------------------------------------+ 
    
    
    


    В прицепе архив с заголовочным файлом и индикатором.

    Содержимое архива нужно распаковать след. образом:
    1. Содержимое папки include нужно распаковать в папку include папки терминала.
    2. Содержимое папки indicators нужно распаковать в папку indicators папки терминала.
    3. Если терминал был запущен, то его нужно перезапустить.
    paperclip Вложения
    • Тип файла: rar iFR.rar (1.6 КБ, Просмотров: 85)

    Последний раз редактировалось Gold; 23.11.2012 в 22:43. Причина: MQL

  26. 55pct
  27. линк#103
    Частый гость
    artamir приемлемый уровень репутации Аватар для artamir
    Регистрация:
    03.05.2012
    Пол:
    Мужчина
    Сообщений:
    114
    Накопленные выплаты (Подробнее):
    1226 RUB
    Поставил лайков:
    6
    Получено лайков:   56
    в 44 сообщениях
    49%
    ПодписатьсяПодписаться
    Подписано 0
    Функции для работы с индикатором Parabolic SAR.

    MQL-Код:
    
     iSAR_Set() 
    
    
    

    Устанавливает глобальные настройки параболика

    MQL-Код:
    
    iSAR_getPrice(int shift = 0) 
    
    
    

    Возвращает цену индикатора на текущем инструменте и текущем таймфрейме на баре с индексом shift

    MQL-Код:
    
        double iSAR_Step = 0.02; // GLOBAL    double iSAR_Maximum = 0.2; //GLOBAL        void iSAR_Set(double step=0.02, double max=0.2){    /*        >Ver    :    0.0.1        >Date    :    2012.11.21        >Hist    :            @0.0.1@2012.11.21@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    */            iSAR_Step = step;        iSAR_Maximum = max;    }        double iSAR.getPrice(int shift = 0){    /*        >Ver    :    0.0.1        >Date    :    2012.11.21        >Hist    :            @0.0.1@2012.11.21@artamir    []        >Author    :    Morochin <artamir> Artiom        >Desc    :    return price of sar    */                double sar = iSAR(NULL, 0, iSAR_Step, iSAR_Maximum, shift);                return(sar);    } 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 20:22. Причина: MQL


Страница 5 из 11
Первая ... 4 5 6 ... Последняя ◄╝

Подписанные на тему (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