欢迎光临
我们一直在努力

根据数字返回订单类型

在量化交易开发中,写程序时候,需要根据输入的整数返回订单类型的枚举值,这样方便我们在开发的时候,不用记住很长的枚举代码,也方便其他程序调用

从下面规律可以看出 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
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:瓜皮猫量化编程 » 根据数字返回订单类型
分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

瓜皮猫量化交易编程

QQ群: 492653640微信: guapitcom
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活