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

 
maryan.dirtyn:

так вот я и делаю)).. 6-ой час.. и немогу понять где ошибка

 нежелание использовать стандартные библиотеки связано с тем, что используются флаги и глобальные переменные внутри функций, а разбирать по запчастям trade.mqh и другие не представляется разумным

А какая ошибка возвращается? )))
 
maryan.dirtyn:

MetaQuotes-Demo

Login: 1219233

EURUSD

попробовал только что на фунте, та же история. никаких стопов. все делаю в тестере

Build 655 (если это поможет) 

Пропишите явную инициализацию структур:

   MqlTradeRequest request={0};
   MqlTradeResult  result={0};

Без этого в полях структуры остается мусор, а Вы не все поля заполняете.

 

спасибо..

в таком виде отпустило:

void OnTick(){ if(PositionsTotal()<1)OPEN(); }

bool OPEN(){
             MqlTradeRequest request={0};  ZeroMemory(request);
             MqlTradeResult  result={0};   ZeroMemory(result);
             

             request.symbol       = _Symbol;
             request.action       = TRADE_ACTION_DEAL;
             request.type_filling = ORDER_FILLING_FOK;
             request.deviation    = 100;
             request.volume       = NormalizeDouble(2,2);
             request.type         = ORDER_TYPE_BUY;
             request.price        = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
             request.tp           = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK) + 500*_Point,_Digits);
             request.sl           = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK) - 500*_Point,_Digits);

             OrderSend(request,result);     
                        
             if(result.retcode==10009 || result.retcode==10008)  Print("Succsesful open");
             else                                               Print("Error open: ",DoubleToString(GetLastError(),0),"  response code: ",result.retcode);
    
   return(true);}
 
ZeroMemory() уже лишнее, так как раньше стоит более экономное и простое зануление через ={0};
 

как проверить сие другим способом? эта конструкция отказывается корректно работать

if(PositionGetDouble(POSITION_PRICE_OPEN)!=PositionGetDouble(POSITION_SL)){ ... }
 

Когда же уже  параметры в OnTrade будут? Такой огород приходится городить...

Хотя бы знать - какие именно параметры будут.  Иначе, к чемпионату переделывать придется кучу.((

 
pronych:

Когда же уже  параметры в OnTrade будут? Такой огород приходится городить...

Хотя бы знать - какие именно параметры будут.  Иначе, к чемпионату переделывать придется кучу.((

Будет уже в сегодняшнем завтрашнем билде. Добавилась еще одна точка входа:

void OnTradeTransaction(const MqlTradeTransaction& trans,const MqlTradeRequest& request,const MqlTradeResult& result)
  {
      
  }
 

Понятно что должно быть: инструмент, цена, лот, тип трейда и тд.

Только вот не понятно, как узнать цену  трейда.

Может я че пропустил, был период отсутствия...

 
Renat:

Будут уже в сегодняшнем билде. Добавилась еще одна точка входа:

Спасибо большое. Наконец-то)))

Очень ждем. 

 

Уважаемые разработчики! Раз уж в терминале нет Аск истории, может имеет смысл привязать стоповые ордера (Buy stop, Sell stop) к Бид цене? Или сделать для пользователя выбор, по какой цене ордеру сработать (Бид или Аск) . Я о форексе.

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