Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не могли бы подсказать код для советника, чтобы закрывал позицию через 5-6 часов. Или ссылочку подкинуть.
Если интересно, попробуйте сами. Сначала с помощью функции PositionSelect() проверяете наличие открытой позиции. В случае успеха узнаёте время открытия позиции с помощью PositionGetInteger(POSITION_TIME) и проверяете своё условие про 5-6 часов. Если подошло время закрывать позицию, узнаёте тип позиции (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE) и её объём PositionGetDouble(POSITION_VOLUME). Затем выставляете противоположно направленный ордер с тем же объёмом. Пример метода закрытия позиции можете посмотреть по адресу MQL5\Include\Trade\Trade.mqh\PositionClose(const string symbol,ulong deviation=ULONG_MAX).
Спасибо, похоже, то что нужно.
Не совсем.
Что бы получить событие "клик мышью", нужно использовать OnChartEvent(), но его нельзя использовать в скриптах, как быть? Значит, универсальной функции не получится?
Не совсем.
Что бы получить событие "клик мышью", нужно использовать OnChartEvent(), но его нельзя использовать в скриптах, как быть? Значит, универсальной функции не получится?
тогда используй GetKeyState + GetPosition + известные координаты графич.объектов.
винАпи?
всё, у меня пропало желание делать универсальную функцию просмотра и выбора файла из списка (некий мини-файлменеджер). :(
винАпи?
всё, у меня пропало желание делать универсальную функцию просмотра и выбора файла из списка (некий мини-файлменеджер). :(
ну а почему тогда скрипт?
Пример метода закрытия позиции можете посмотреть по адресу MQL5\Include\Trade\Trade.mqh\PositionClose(const string symbol,ulong deviation=ULONG_MAX).
Спасибо.
Но с классами у меня пока не получается взаимопонимание, хотя то что у меня получается, как правило за счёт того, что где-то увидел и разобрался.
потому что ему пофиг тики - тикают тики или не тикают.
Но с классами у меня пока не получается взаимопонимание, хотя то что у меня получается, как правило за счёт того, что где-то увидел и разобрался.
Ну, любой метод класса - это обычный код. Попробуйте разобрать вот этот код:
MqlTradeRequest m_request={0}; // request data MqlTradeResult m_result={0}; // result data MqlTradeCheckResult m_check_result={0}; // result check data bool partial_close=false; int retry_count =10; uint retcode =TRADE_RETCODE_REJECT; do { //--- checking if(PositionSelect(symbol)) { if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { //--- prepare request for close BUY position m_request.type =ORDER_TYPE_SELL; m_request.price=SymbolInfoDouble(symbol,SYMBOL_BID); } else { //--- prepare request for close SELL position m_request.type =ORDER_TYPE_BUY; m_request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); } } else { //--- position not found m_result.retcode=retcode; return(false); } //--- setting request m_request.action =TRADE_ACTION_DEAL; m_request.symbol =symbol; m_request.deviation =(deviation==ULONG_MAX) ? m_deviation : deviation; m_request.type_filling=m_type_filling; m_request.volume =PositionGetDouble(POSITION_VOLUME); //--- check volume double max_volume=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX); if(m_request.volume>max_volume) { m_request.volume=max_volume; partial_close=true; } else partial_close=false; //--- order check if(!OrderCheck(m_request,m_check_result)) { //--- copy return code m_result.retcode=m_check_result.retcode; return(false); } //--- order send if(!OrderSend(m_request,m_result)) { if(--retry_count!=0) continue; if(retcode==TRADE_RETCODE_DONE_PARTIAL) m_result.retcode=retcode; return(false); } retcode=TRADE_RETCODE_DONE_PARTIAL; if(partial_close) Sleep(1000); } while(partial_close);так и эксперту пофиг. почему именно скрипт?