//+------------------------------------------------------------------+ //| pairs_trading | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #include #include input group "●--EAの基本設定--●" sinput ENUM_LOG_LEVELS loglevel = LOG_LEVEL_ERRORS; // メッセージログの表示/非表示を設定 sinput ulong Magic = 1234; // マジックナンバー input ulong EN_Slippage = 20; // 新規注文の許容スリッページ input ulong EX_Slippage = 100; // 決済注文の許容スリッページ enum ENUM_FILLING_MODE { auto = 1, //自動 FILLING_FOK = 2, //ORDER_FILLING_FOK FILLING_IOC = 3, //ORDER_FILLING_IOC FILLING_RETURN = 4, //ORDER_FILLING_RETURN Not_set = 0 //設定しない }; input ENUM_FILLING_MODE OrderTypeFillingMode = 0; // 注文充填の種類 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { // EAの初期設定 ExtTrade.LogLevel(loglevel); ExtTrade.SetExpertMagicNumber(Magic); ExtTrade.SetDeviationInPoints(EN_Slippage); if(OrderTypeFillingMode != 0) ExtTrade.SetTypeFilling(Set_Order_Type_Filling() ); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| ORDER_TYPE_FILLING の設定 //+------------------------------------------------------------------+ ENUM_ORDER_TYPE_FILLING Set_Order_Type_Filling() { //自動選択モード if(OrderTypeFillingMode == 1 && SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE) == 1) return ORDER_FILLING_FOK; else if(OrderTypeFillingMode == 1 && SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE) == 2) return ORDER_FILLING_IOC; else if(OrderTypeFillingMode == 1) return ORDER_FILLING_RETURN; //手動選択モード else if(OrderTypeFillingMode == 2) return ORDER_FILLING_FOK; else if(OrderTypeFillingMode == 3) return ORDER_FILLING_IOC; else if(OrderTypeFillingMode == 4) return ORDER_FILLING_RETURN; return 0; } //+------------------------------------------------------------------+