Коллеги по увлечению помогите ( кто торгует в Open-Broker АКЦИИ ) , удавалось ли кому нибудь выставить отложки у этого чудесного брокера с врменем истечения

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yuriy Zaytsev
18421
Yuriy Zaytsev  

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

ORDER_TIME_DAY

Ордер будет действовать только в течение текущего торгового дня

ORDER_TIME_SPECIFIED

Ордер будет действовать до даты истечения

ORDER_TIME_SPECIFIED_DAY

Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.


    Парни, не работают ENUM_ORDER_TYPE_TIME на отложках в Open-Broker ,  хотел было выставлять отложенные ордера  по дате истечения  не дает ,  может кто то знает в чем причина ?

prostotrader
7360
prostotrader  
Yuriy Zaytsev:

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

ORDER_TIME_DAY

Ордер будет действовать только в течение текущего торгового дня

ORDER_TIME_SPECIFIED

Ордер будет действовать до даты истечения

ORDER_TIME_SPECIFIED_DAY

Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.


    Парни, не работают ENUM_ORDER_TYPE_TIME на отложках в Open-Broker ,  хотел было выставлять отложенные ордера  по дате истечения  не дает ,  может кто то знает в чем причина ?

Прежде чем устанавливать ордера, нужно проверять что поддерживает брокер

//+------------------------------------------------------------------+
//| Expert Check Market Parameters function                          |
//+------------------------------------------------------------------+
bool CheckMarketParam(const string a_symbol)
{
//--- Check real accaunt
  ENUM_ACCOUNT_TRADE_MODE acc_trade_mode = ENUM_ACCOUNT_TRADE_MODE(AccountInfoInteger(ACCOUNT_TRADE_MODE));
#ifdef DEBUG
  if(acc_trade_mode != ACCOUNT_TRADE_MODE_DEMO)
  {
    MessageBox("Эксперт запущен не на демо-счёте!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
#else
  if(acc_trade_mode != ACCOUNT_TRADE_MODE_REAL)
  {
    MessageBox("Эксперт запущен не на реальном счёте!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
#endif  
//--- Check margine mode
  ENUM_ACCOUNT_MARGIN_MODE margin_mode = ENUM_ACCOUNT_MARGIN_MODE(AccountInfoInteger(ACCOUNT_MARGIN_MODE));
  if(margin_mode != ACCOUNT_MARGIN_MODE_RETAIL_NETTING)
  {
    MessageBox("Брокер не поддерживает биржевой расчёт маржи в режиме 'Неттинг'!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Check symbol calc mode 
  ENUM_SYMBOL_CALC_MODE calc_mode = ENUM_SYMBOL_CALC_MODE(SymbolInfoInteger(a_symbol, SYMBOL_TRADE_CALC_MODE));
  
  if((calc_mode != SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS) && (calc_mode != SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN))
  {
    MessageBox("Символ " + a_symbol + " не поддерживает расчёт фьючерсов для FORTS!", "Ошибка", MB_OK | MB_ICONHAND);
    Print("Текуший расчёт: ", EnumToString(calc_mode));
    return( false );
  } 
//--- Check for full mode
  ENUM_SYMBOL_TRADE_MODE trade_mode = ENUM_SYMBOL_TRADE_MODE(SymbolInfoInteger(a_symbol, SYMBOL_TRADE_MODE));
  
  if(trade_mode != SYMBOL_TRADE_MODE_FULL)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает полную торговлю!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Check trade execution mode
  ENUM_SYMBOL_TRADE_EXECUTION market_info = ENUM_SYMBOL_TRADE_EXECUTION( SymbolInfoInteger(a_symbol, SYMBOL_TRADE_EXEMODE));
    
  if((market_info & SYMBOL_TRADE_EXECUTION_EXCHANGE) != SYMBOL_TRADE_EXECUTION_EXCHANGE)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает TRADE EXECUTION EXCHANGE режим!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Check orders mode
  int order_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_ORDER_MODE));
  
  if((SYMBOL_ORDER_MARKET & order_mode) != SYMBOL_ORDER_MARKET)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает Market Execution режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  
  if((SYMBOL_ORDER_LIMIT & order_mode) != SYMBOL_ORDER_LIMIT)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  
  if((SYMBOL_ORDER_STOP_LIMIT & order_mode) != SYMBOL_ORDER_STOP_LIMIT)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает Stop Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  
  if((SYMBOL_ORDER_STOP & order_mode) != SYMBOL_ORDER_STOP)
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  }
  
  if((SYMBOL_ORDER_SL & order_mode) != SYMBOL_ORDER_SL)
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop Loss режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  }
  
  if((SYMBOL_ORDER_TP & order_mode) != SYMBOL_ORDER_TP)
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Take Profit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  }
//---Filing mode
  int filling_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_FILLING_MODE));
  
  if((SYMBOL_FILLING_IOC & filling_mode) != SYMBOL_FILLING_IOC)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  
  if((SYMBOL_FILLING_FOK & filling_mode) != SYMBOL_FILLING_FOK)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает filling FOK режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//---Ckeck expiration
  int symbol_exp_type = int( SymbolInfoInteger(a_symbol, SYMBOL_EXPIRATION_MODE));
//---  
  if((symbol_exp_type & SYMBOL_EXPIRATION_DAY) != SYMBOL_EXPIRATION_DAY)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает экспирацию DAY!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  if((symbol_exp_type & SYMBOL_EXPIRATION_SPECIFIED_DAY) != SYMBOL_EXPIRATION_SPECIFIED_DAY)
  {
    MessageBox("Символ " + a_symbol + " не поддерживает экспирацию SPECIFIED DAY!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  return(true);
}

В вашем случае нужно проверить

int symbol_exp_type = int( SymbolInfoInteger(a_symbol, SYMBOL_EXPIRATION_MODE));
Yuriy Zaytsev
18421
Yuriy Zaytsev  
prostotrader:

Прежде чем устанавливать ордера, нужно проверять что поддерживает брокер

В вашем случае нужно проверить

Спасибо большое, попробую.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий