欢迎光临散文网 会员登陆 & 注册

赫兹股票量化交易:根据指定的分布法则为自定义品种的时间序列建模

2023-07-14 15:44 作者:bili_45793681098  | 我要投稿

简介

兹股票交易终端允许在操作中创建和使用自定义品种。 交易者有能力测试自己的货币对和其它金融产品。 本文提出了根据指定的分布法则创建和删除自定义品种,生成逐笔报价和柱线的方法。

它还提出了模拟趋势和各种图表形态的方法。 提到的现成脚本可用来操作最小设置的自定义品种,没有 MQL5 编程技能的交易者也能够充分发挥自定义品种的潜力。

编辑切换为居中

创建和删除自定义品种

这篇早期的 文章 提出了一种基于现有品种在赫兹股票交易的“品种”窗口中创建自定义品种的方法。 赫兹股票交易建议依据最小配置的简单设置自动执行此过程。 该脚本有四个输入参数:

  • 自定义品种的名称,

  • 货币对或金融产品的简称,

  • 货币对或金融产品的全称,

  • 如果品种是基于基准品种创建的,此为基准货币或金融产品的简称,

这是脚本的代码(脚本位于文章附带的 CreateSymbol.mq5 文件中): //+------------------------------------------------------------------+ //|                                                 CreateSymbol.mq5 | //|                                                  Aleksey Zinovik | //|                                                                  | //+------------------------------------------------------------------+ #property copyright "Aleksey Zinovik" #property script_show_inputs #property version "1.00" //+------------------------------------------------------------------+ //| 脚本程序开始函数                                                    | //+------------------------------------------------------------------+ input string SName="ExampleCurrency"; input string CurrencyName="UCR"; input string CurrencyFullName="UserCurrency"; input string BaseName="EURUSD"; //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ void OnStart()   {    ResetLastError(); // 创建品种 if(!CustomSymbolCreate(SName,"\\Forex"))      {       if(SymbolInfoInteger(SName,SYMBOL_CUSTOM))          Print("Symbol ",SName," already exists!");       else Print("Error creating symbol. Error code: ",GetLastError());      }    else      {       if(BaseName=="")// create new         {          // 字符串类型属性 if((SetProperty(SName,SYMBOL_CURRENCY_BASE,CurrencyName,"")) && // 基准货币             (SetProperty(SName,SYMBOL_CURRENCY_PROFIT,"USD",""))&&                         // 盈利货币             (SetProperty(SName,SYMBOL_CURRENCY_MARGIN,"USD",""))&&                         // 保证金货币             (SetProperty(SName,SYMBOL_DESCRIPTION,CurrencyName,""))&&                      // 品种的字符串描述(全名)             (SetProperty(SName,SYMBOL_BASIS,"","")) &&                                     // 自定义品种的底层资产的名称             (SetProperty(SName,SYMBOL_FORMULA,"","")) &&                                   // 自定义品种的定价公式             (SetProperty(SName,SYMBOL_ISIN,"","")) &&                                      // ISIN 系统中交易品种的名称             (SetProperty(SName,SYMBOL_PAGE,"","")) &&                                      // 包含品种信息的网页 // 整数类型属性             (SetProperty(SName,SYMBOL_CHART_MODE,SYMBOL_CHART_MODE_BID,"")) &&             // 按竞买价绘制图表             (SetProperty(SName,SYMBOL_SPREAD,3,"")) &&                                     // 点差             (SetProperty(SName,SYMBOL_SPREAD_FLOAT,true,"")) &&                            // 浮动点差             (SetProperty(SName,SYMBOL_DIGITS,5,"")) &&                                     // 精度             (SetProperty(SName,SYMBOL_TICKS_BOOKDEPTH,10,"")) &&                           // 预置订单深度             (SetProperty(SName,SYMBOL_BACKGROUND_COLOR,White,""))&&                        // 市场观察中品种所用的背景颜色             (SetProperty(SName,SYMBOL_TRADE_MODE,SYMBOL_TRADE_MODE_FULL,""))&&             // 订单执行类型:完全访问权限             (SetProperty(SName,SYMBOL_TRADE_EXEMODE,SYMBOL_TRADE_EXECUTION_INSTANT,""))&&  // 成交执行模式:即时执行             (SetProperty(SName,SYMBOL_ORDER_GTC_MODE,SYMBOL_ORDERS_GTC,""))&&              // 止损和止盈订单限期:最佳直至取消             (SetProperty(SName,SYMBOL_FILLING_MODE,SYMBOL_FILLING_FOK,""))&&               // 订单执行模式:填单或终止             (SetProperty(SName,SYMBOL_EXPIRATION_MODE,SYMBOL_EXPIRATION_GTC,""))&&         // 订单限期模式:无限定时间,直至明确取消             (SetProperty(SName,SYMBOL_ORDER_MODE,127,"")) &&                               // 订单类型:所有订单类型             (SetProperty(SName,SYMBOL_TRADE_CALC_MODE,SYMBOL_CALC_MODE_FOREX,""))&&        // 计算合约价值的方法             (SetProperty(SName,SYMBOL_MARGIN_HEDGED_USE_LEG,false,""))&&                   // 使用较大的分支计算对冲保证金             (SetProperty(SName,SYMBOL_SWAP_MODE,SYMBOL_SWAP_MODE_POINTS,""))&&             // 掉期利率计算模型:以点数为单位计算掉期利率             (SetProperty(SName,SYMBOL_SWAP_ROLLOVER3DAYS,WEDNESDAY,"")) &&                 // 掉期日:周三             (SetProperty(SName,SYMBOL_OPTION_MODE,0,"")) &&                                // 期权类型             (SetProperty(SName,SYMBOL_OPTION_RIGHT,0,"")) &&                               // 期权加权             (SetProperty(SName,SYMBOL_TRADE_STOPS_LEVEL,0,"")) &&                          // 设置止损订单与当前收盘价的最小间距             (SetProperty(SName,SYMBOL_TRADE_FREEZE_LEVEL,0,"")) &&                         // 交易操作的冻结间距(以点数为单位)             (SetProperty(SName,SYMBOL_START_TIME,0,"")) &&                                 // 该品种交易开始日期(通常用于期货)             (SetProperty(SName,SYMBOL_EXPIRATION_TIME,0,"")) &&                            // 该品种交易结束日期(通常用于期货) // 双精度类型属性             (SetProperty(SName,SYMBOL_OPTION_STRIKE,0,"")) &&                              // 期权执行价格             (SetProperty(SName,SYMBOL_SESSION_PRICE_LIMIT_MAX,0,"")) &&                    // 时段的最低允许价格数值             (SetProperty(SName,SYMBOL_SESSION_PRICE_LIMIT_MIN,0,"")) &&                    // 时段的最高允许价格数值             (SetProperty(SName,SYMBOL_SESSION_PRICE_SETTLEMENT,0,"")) &&                   // 当前时段的结算价格             (SetProperty(SName,SYMBOL_TRADE_ACCRUED_INTEREST,0,"")) &&                     // 应计利息(债券)             (SetProperty(SName,SYMBOL_TRADE_FACE_VALUE,0,"")) &&                           // 面值(债券)             (SetProperty(SName,SYMBOL_TRADE_LIQUIDITY_RATE,0,"")) &&                       // 流动资金率(用于抵押品种)             (SetProperty(SName,SYMBOL_TRADE_TICK_SIZE,0.00001,"")) &&                      // 最低价格变化             (SetProperty(SName,SYMBOL_TRADE_TICK_VALUE,1,"")) &&                           // 逐笔报价值             (SetProperty(SName,SYMBOL_TRADE_CONTRACT_SIZE,100000,"")) &&                   // 交易合约规模             (SetProperty(SName,SYMBOL_POINT,0.00001,"")) &&                                // 点数值             (SetProperty(SName,SYMBOL_VOLUME_MIN,0.01,"")) &&                              // 成交执行的最小交易量             (SetProperty(SName,SYMBOL_VOLUME_MAX,500.00,"")) &&                            // 成交执行的最大交易量             (SetProperty(SName,SYMBOL_VOLUME_STEP,0.01,"")) &&                             // 成交执行的最小交易量变动间距             (SetProperty(SName,SYMBOL_VOLUME_LIMIT,0,"")) &&                               // 此品种单向(买入或卖出)持仓和挂单的最大允许总交易量             (SetProperty(SName,SYMBOL_MARGIN_INITIAL,0,"")) &&                             // 初始保证金             (SetProperty(SName,SYMBOL_MARGIN_MAINTENANCE,0,"")) &&                         // 维持保证金             (SetProperty(SName,SYMBOL_MARGIN_HEDGED,100000,"")) &&                         // 一个品种的一手反向持仓的合约或保证金大小             (SetProperty(SName,SYMBOL_SWAP_LONG,-0.7,"")) &&                               // 多头的掉期利率             (SetProperty(SName,SYMBOL_SWAP_SHORT,-1,"")))                                  // 空头的掉期利率 Print("Symbol ",SName," created successfully");          else Print("Error setting symbol properties. Error code: ",GetLastError());         }       else// 依据基准品种创建         {          if((SetProperty(SName,SYMBOL_CURRENCY_BASE,CurrencyName,"")) &&              (SetProperty(SName,SYMBOL_CURRENCY_PROFIT,"",BaseName)) &&              (SetProperty(SName,SYMBOL_CURRENCY_MARGIN,"",BaseName)) &&              (SetProperty(SName,SYMBOL_DESCRIPTION,CurrencyFullName,"")) &&              (SetProperty(SName,SYMBOL_BASIS,"",BaseName)) &&              (SetProperty(SName,SYMBOL_FORMULA,"",BaseName)) &&              (SetProperty(SName,SYMBOL_ISIN,"",BaseName)) &&              (SetProperty(SName,SYMBOL_PAGE,"",BaseName)) &&               (SetProperty(SName,SYMBOL_CHART_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SPREAD,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SPREAD_FLOAT,0,BaseName)) &&              (SetProperty(SName,SYMBOL_DIGITS,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TICKS_BOOKDEPTH,0,BaseName)) &&              (SetProperty(SName,SYMBOL_BACKGROUND_COLOR,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_EXEMODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_ORDER_GTC_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_FILLING_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_EXPIRATION_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_ORDER_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_CALC_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_MARGIN_HEDGED_USE_LEG,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SWAP_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SWAP_ROLLOVER3DAYS,0,BaseName)) &&              (SetProperty(SName,SYMBOL_OPTION_MODE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_OPTION_RIGHT,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_STOPS_LEVEL,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_FREEZE_LEVEL,0,BaseName)) &&              (SetProperty(SName,SYMBOL_START_TIME,0,BaseName)) &&              (SetProperty(SName,SYMBOL_EXPIRATION_TIME,0,BaseName)) &&               (SetProperty(SName,SYMBOL_OPTION_STRIKE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SESSION_PRICE_LIMIT_MAX,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SESSION_PRICE_LIMIT_MIN,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SESSION_PRICE_SETTLEMENT,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_ACCRUED_INTEREST,0,BaseName)) &&              (SetProperty(SName,SYMBOL_POINT,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_CONTRACT_SIZE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_FACE_VALUE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_LIQUIDITY_RATE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_TICK_SIZE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_TRADE_TICK_VALUE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_VOLUME_MIN,0,BaseName)) &&              (SetProperty(SName,SYMBOL_VOLUME_MAX,0,BaseName)) &&              (SetProperty(SName,SYMBOL_VOLUME_STEP,0,BaseName)) &&              (SetProperty(SName,SYMBOL_VOLUME_LIMIT,0,BaseName)) &&              (SetProperty(SName,SYMBOL_MARGIN_INITIAL,0,BaseName)) &&              (SetProperty(SName,SYMBOL_MARGIN_MAINTENANCE,0,BaseName)) &&              (SetProperty(SName,SYMBOL_MARGIN_HEDGED,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SWAP_LONG,0,BaseName)) &&              (SetProperty(SName,SYMBOL_SWAP_SHORT,0,BaseName)))             Print("Symbol ",SName," created successfully");          else Print("Error setting symbol properties. Error code: ",GetLastError());         }       if(SymbolSelect(SName,true))          Print("Symbol ",SName," selected in Market Watch");       else Print("Error selecting symbol in Market Watch. Error code: ",GetLastError());      }   } // 用于设置品种属性的函数 bool SetProperty(string SymName,ENUM_SYMBOL_INFO_STRING SProp,string PropValue,string BaseSymName)   {    ResetLastError();    if(BaseSymName=="")      {       if(CustomSymbolSetString(SymName,SProp,PropValue))          return true;       else Print("Error setting symbol property: ",SProp,". Error code: ",GetLastError());      }    else      {       string SValue=SymbolInfoString(BaseSymName,SProp);       if(CustomSymbolSetString(SymName,SProp,SValue))          return true;       else Print("Error setting symbol property: ",SProp,". Error code: ",GetLastError());      }    return false;   } //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ bool SetProperty(string SymName,ENUM_SYMBOL_INFO_INTEGER IProp,long PropValue,string BaseSymName)   {    ResetLastError();    if(BaseSymName=="")      {       if(CustomSymbolSetInteger(SymName,IProp,PropValue))          return true;       else Print("Error setting symbol property: ",IProp,". Error code: ",GetLastError());      }    else      {       long IValue=SymbolInfoInteger(BaseSymName,IProp);       if(CustomSymbolSetInteger(SymName,IProp,IValue))          return true;       else Print("Error setting symbol property: ",IProp,". Error code: ",GetLastError());      }    return false;   } //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ bool SetProperty(string SymName,ENUM_SYMBOL_INFO_DOUBLE DProp,double PropValue,string BaseSymName)   {    ResetLastError();    if(BaseSymName=="")      {       if(CustomSymbolSetDouble(SymName,DProp,PropValue))          return true;       else Print("Error setting symbol property: ",DProp,". Error code: ",GetLastError());      }    else      {       double DValue=SymbolInfoDouble(BaseSymName,DProp);       if(CustomSymbolSetDouble(SymName,DProp,DValue))          return true;       else Print("Error setting symbol property: ",DProp,". Error code: ",GetLastError());      }    return false;   } //+------------------------------------------------------------------+


赫兹股票量化交易:根据指定的分布法则为自定义品种的时间序列建模的评论 (共 条)

分享到微博请遵守国家法律