• 通过股票量化交易券商接口如何减少发生亏损的风险?


    在进行股票量化交易券商接口回测的时候,可以在翻单或者每次新建部位( from Position = 0 to Position > 0 ) ,定义两个新的数值,pl1记录基本部位损益、pl2加码部位损益( pl1、pl2 start from 0 )。这样就可以简单的区分加码单和基本单的盈利与亏损,如果需要详细的记录到每笔加码后的实际数值,那么就可以延伸至pl3、pl4、pl5…...
     
    可以得出的普遍策略的结果是,部位大小和权益变化区间大小具有非常高的相关性,部位大的时候就会造成权益曲线图的大起伏和MDD。在我们得到了长期pl1、pl2、pl3…均值后,就可以得到最佳加码间距。
     
    就像上面讲述的,如果中大型DD和MDD都是在pl2以后的部位发生的,这样都可以避免消除系统基本风险过大的情况,因为很多策略得出的大型DD都是加码后的获利回落。

    分享部分股票量化交易接口代码:

    // 查询各类交易数据

    // category: 0=>资金, 1=>股份, 2=>当日委托, 3=>当日成交, 4=>可撤单,

    //           5=>股东代码, 6=>融资余额, 7=>融券余额, 8=>可融证券,

    //           12=>可申购新股, 13=>新股申购额度, 14=>配号, 15=>中签,

    //           16=>未平仓融资合约, 17=>未平仓融券合约, 18=>未平仓两融合约

    typedef void (*QueryDataProc)(int clientId, int category, char *result, char *errinfo);

    const auto QueryData = reinterpret_cast(GetProcAddress(hDLL, "QueryData"));

    assert(QueryData);

    std::cout << "========== 查询资金: category = 0 ==========\n";

    int category = 0;

    QueryData(clientId, category, result, errinfo);

    if (NULL != errinfo[0]) {

      std::cout << errinfo << std::endl;

    } else {

      std::cout << result << std::endl;

    }

    std::cout << std::endl;

    那么量化交易者又应该如何去避免这个风险呢?

    如果资金部位增加,不要着急将系统讯号和资金与部位比例拉齐,等到每个商品都开始重新计算基本部位亏损时( pl1 < 0 ) 或者基本部位损益( pl1 = 0 )之后再进场,就可以避免这种,因为加码机制而造成没有必要的损失。    

  • 相关阅读:
    【LeetCode】C++:数组类算法-运用基础算法思想
    c++的多态和虚函数
    XPS数据处理(二)-科学指南针
    02_elasticsearch 核心概念
    解决vue-area-linkage 无法回显的bug
    内网收集哈希传递
    计划跳槽需要做哪些准备?
    C#学生信息管理系统,数据库sqlserver
    Spark高效数据分析04、RDD创建
    面向对象分析与设计
  • 原文地址:https://blog.csdn.net/Q1841085904/article/details/127770870