在量化交易开发中,写程序时候,需要根据输入的整数返回订单类型的枚举值,这样方便我们在开发的时候,不用记住很长的枚举代码,也方便其他程序调用
从下面规律可以看出 Buy方向都是偶数,Sell方向都是奇数
Buy类型
0:ORDER_TYPE_BUY Buy方向订单类型
2:ORDER_TYPE_BUY_LIMIT Buy方向抄底挂单类型
3:ORDER_TYPE_BUY_STOP Buy方向追涨挂单类型
6:ORDER_TYPE_BUY_STOP_LIMIT Buy方向抄底和追涨挂单类型
Sell类型
1:ORDER_TYPE_SELL Sell方向订单类型
3:ORDER_TYPE_SELL_LIMIT Sell方向抄底挂单类型
5:ORDER_TYPE_SELL_STOP Sell方向追跌挂单类型
7:ORDER_TYPE_SELL_STOP_LIMIT Sell方向抄底和追跌挂单类型
扩展功能
用在需要用到两种方向的持仓单时,比如移动止损止盈,同时平Buy和Sell方向订单时
12 Buy和Sell方向订单类型
14 Buy和Sell方向挂单类型
-1 没有找到指定的类型和方向
实现代码
ENUM_ORDER_TYPE getType(const int type)
{
  ENUM_ORDER_TYPE m_type;
   switch(type)
   {
      case 0: m_type = ORDER_TYPE_BUY; break;
      case 1: m_type = ORDER_TYPE_SELL; break;
      case 2: m_type = ORDER_TYPE_BUY_LIMIT; break;
      case 3: m_type = ORDER_TYPE_SELL_LIMIT; break;
      case 4: m_type = ORDER_TYPE_BUY_STOP; break;
      case 5: m_type = ORDER_TYPE_SELL_STOP; break;
      case 6: m_type = ORDER_TYPE_BUY_STOP_LIMIT; break;
      case 7: m_type = ORDER_TYPE_SELL_STOP_LIMIT; break;
      case 12: m_type = (ENUM_ORDER_TYPE)12; break;
      case 14: m_type = (ENUM_ORDER_TYPE)14; break;
      default: m_type = -1;
   }
   return m_type;
}调用方法
void OnStart()
  {
    // 查询系统默认的订单类型转换成整数的值
    printf("Type buy: %d", ORDER_TYPE_BUY);
    printf("Type buy limit: %d", ORDER_TYPE_BUY_LIMIT);
    printf("Type buy stop: %d", ORDER_TYPE_BUY_STOP);
    printf("Type buy stop limit: %d", ORDER_TYPE_BUY_STOP_LIMIT);
    printf("Type sell: %d", ORDER_TYPE_SELL);
    printf("Type sell limit: %d", ORDER_TYPE_SELL_LIMIT);
    printf("Type sell stop: %d", ORDER_TYPE_SELL_STOP);
    printf("Type sell stop limit: %d", ORDER_TYPE_SELL_STOP_LIMIT);
    // 返回系统默认的枚举类型
    printf("Type getType1: %s, %d", EnumToString(getType(0)), getType(0));
    // 返回自定义的复合枚举类型
    printf("Type getType2: %s, %d", EnumToString(getType(12)), getType(12));
    // 没有指定类型时
    printf("Type getType3: %s, %d", EnumToString(getType(18)), getType(18));
   
  }输出控制台结果
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type buy: 0
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type buy limit: 2
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type buy stop: 4
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type buy stop limit: 6
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type sell: 1
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type sell limit: 3
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type sell stop: 5
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type sell stop limit: 7
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type getType1: ORDER_TYPE_BUY, 0
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type getType2: ENUM_ORDER_TYPE::12, 12
2022.11.28 15:37:38.429	getType测试 (EURUSD,H1)	Type getType3: ENUM_ORDER_TYPE::-1, -1
 瓜皮猫量化编程
瓜皮猫量化编程


