Ошибки, баги, вопросы - страница 456

 
_____Life_Line:

Можно реализовать разными способами, в зависимости от вашей задачи.

Посмотрите разделы справки MQL5 "Периоды графиков","Информация об инструменте" и обратите внимание на функцию ChartSetSymbolPeriod().

ЗЫ Для реализации вам скорее всего потребуется либо прописать список ТФ и Символов, либо получить их из рыночного окружения.

 
Urain:

Можно реализовать разными способами, в зависимости от вашей задачи.

Посмотрите разделы справки MQL5 "Периоды графиков","Информация об инструменте" и обратите внимание на функцию ChartSetSymbolPeriod().

ЗЫ Для реализации вам скорее всего потребуется либо прописать список ТФ и Символов, либо получить их из рыночного окружения.

Спасибо, разобрался. Все получилось. загоняем в switch все нужные перечисления . ошибка была в выборе правильного типа string для пары и  ENUM_TIMEFRAMES для периода. потом эти непрерывные числовые интервалы можно смело гнать через цикл.
 

Всем привет, появился очень неприятный нюанс при закрытии открытых позиций,

профит получаем например +150$ и закрываем все: НО на графике увидел такую картину:

решил сделать небольшое дополнение перед тем как закроем все позы по разным символам в профит в коде это так:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && GetProfit()>= PP))
     {

т.е. когда профит по всем  парам больше указанного в параметрах, и эквити больше баланса, то закрываем

но после этих изменений ситуация не изменилась, теперь такие нюансы те же только в другом месте.


У меня единственное объяснение этому: посчитали тек. профит который получился больше заданного в +

                                                             а когда начали закрывать, то цены уже изменились т.е. пару тиков в

                                                             тестере прошло и мы уже в минусе пока все закрывалось (2 пары инструментов

                                                             EURUSD .. GBPUSD)

Так ??

 
Im_hungry:

Всем привет, появился очень неприятный нюанс при закрытии открытых позиций,

.............

Так ??

Стопы есть?
 
MetaDriver:
Стопы есть?
"Ну откуда у них в Италии стопы, видел я их Италию на карте, сапог сапогом"(с)почти Броневой) :о)
 
MetaDriver:
Стопы есть?

Нет только трал (то что ниже на каждом тике), сейчас попробовал следующий код:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP))

PP - профит в параметрах, и все равно те же пропуски, пару тиков и все мы в минусе или еще...?

Открывается арбитражем по 2 парам (EURUSD .. GBPUSD) и по достижению в сумме желаемого профита

закрываемся.

 

Сделал все чтобы лишние строки не мешали быстро закрывать позы,

меньше пропусков стало, но все больше склоняюсь что это из=за медлительности компа,

оперативки хватает а вот процессор под завязку ?

 

Подскажите, пожалуйста, по поводу интерпретации статуса SYMBOL_TRADE_MODE.

Можно ли отправлять ордеры на изменение стоп-уровней при режиме SYMBOL_TRADE_MODE_CLOSEONLY ?

 
Im_hungry:

Нет только трал (то что ниже на каждом тике), сейчас попробовал следующий код:

PP - профит в параметрах, и все равно те же пропуски, пару тиков и все мы в минусе или еще...?

Открывается арбитражем по 2 парам (EURUSD .. GBPUSD) и по достижению в сумме желаемого профита

закрываемся.

Предоставленного кода недостаточно. Ошибка за его пределами.
 
MetaDriver:
Предоставленного кода недостаточно. Ошибка за его пределами.

после этого (

bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP && sum>=PP)

) идет сразу закрытие поз этим вот кодом который был взят с этого сайта

   MqlTradeRequest mrequest;                           
   MqlTradeResult mresult;                             
   if(PositionSelect(Symbol_1)==true)
     {
       mrequest.action = TRADE_ACTION_DEAL;              
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_BID);    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_ASK);
       mrequest.symbol = Symbol_1;                         
       mrequest.volume = PositionGetDouble(POSITION_VOLUME);                          
       mrequest.magic = PositionGetInteger(POSITION_MAGIC); ;                           
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.type= ORDER_TYPE_SELL;                    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.type= ORDER_TYPE_BUY;
       mrequest.type_filling = ORDER_FILLING_AON;         
       mrequest.deviation=Prosk;                          
       OrderSend(mrequest,mresult);

по 2 парам валют. Будем дальше думать в чем дело, но факт в том что на разных компах с разными внутренностями, результ разный и проскоков при закрытии таких почти нет

Причина обращения: