• 量化投资_EasyLanguage/PowerLanguage教学课程__【第一篇基础】__【第二十四章策略交易_策略绩效】


    第二十四章:策略绩效

    第一节:介绍

     1.1 按照资金百分比进行资金管理,设定进场手数设置

    Input: initialcap(1000000),entrypercent(0.5),marginpercent(0.15);
    Var: totalequity(0),entrysize(0),marginpercontract(0);
    Totalequity
    =initialcap+netprofit+openpositionprofit; Marginpercontract= close*bigpointvalue*marginpercent; Entrysize=IntPortion(totalequity*entrypercent/Marginpercontract);
    If h
    >h[1] and condition1 then Buy("LE") entrysize contracts next bar at market; 

      其中,condition1 是其他的买入进场条件,entrypercent 是进场的百分比,marginpercent 是保证金比例,totalequity 是目前账户总权益,marginpercontract 是每手合约所占用的保证金,entrysize 是可进 场的总手数。

    1.2 

      使用者可以根据资金状况和策略思想,结合本章提供的关键字, 来构建有效的资金管理模型。 本章的关键字,凡注明“此功能只能用于信号和函数”,表示: (1)该关键字可直接写入信号中使用。(2)该关键字可写入函数中, 再被信号调用,而对应函数不可以被指标调用。

    第二节:相关函数

     2.1 AvgBarsEvenTrade

    # 语法:

    语法 AvgBarsEvenTrade
    注意 此功能只能用于信号。

    # 示例:

    如果有 4 笔损益两平交易,分别持仓时间为 2,5,3,4 根 K 棒,
    则 AvgBarsEvenTrade 将返回数值 3.5

    # 说明

       返回一个数值,表示损益两平交易的平均持仓时间(以 K 棒 数量表示)。

    2.2 AvgBarsLosTrade

    # 语法:

    语法 AvgBarsLosTrade
    注意 此功能只能用于信号。

    # 示例:

    若有四笔亏损交易,分别持仓时间为 2,5,3,4 根 K 棒,则
    AvgBarsLosTrade 将返回数值 3.5

    # 说明

      返回一个数值,表示亏损交易的平均持仓时间(以 K 棒数量表示)。

    2.3 AvgBarsWinTrade

    # 语法:

    语法 AvgBarsWinTrade
    注意 此功能只能用于信号。

    # 示例:

    若有四笔盈利交易,分别持仓时间为 2,5,3,4 根 K 棒,则
    AvgBarsWinTrade 将返回数值 3.5

    # 说明

      返回一个数值,表示获利交易的平均持仓时间(以 K 棒数量 表示)。

    2.4 AvgEntryPrice/i_AvgEntryPrice

    # 语法:

    语法 信号:AvgEntryPrice
    函数或指标:i_AvgEntryPrice

    # 示例:

    若有三笔未平仓交易,进场价各为 95,105,103,则
    AvgEntryPrice 返回数值 101

    # 说明

      返回目前未平仓部位的平均成本。

    2.5 AvgEntryPrice_at_Broker

    # 语法:

    语法 AvgEntryPrice_at_Broker
    注意
    *此功能只能用于信号和函数。
    *此功能只能用于 Interactive Brokers, Patsystems 和 Zen-Fire 经
    纪商。
      重要 如果用户手动关闭自动交易,关键字返回值不再改变,有可能保持非 0 值。

    # 示例:

    如果某交易的商品当前在经纪商处有一笔未平仓交易,进场
    价 102,则 AvgEntryPrice_at_Broker 返回值为 102

    # 说明

      返回目前商品在经纪商处未平仓部位的平均价格。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。

    2.6 AvgEntryPrice_at_Broker_for_The_Strategy

    # 语法:

    语法 AvgEntryPrice_at_Broker_for_The_Strategy
    注意
    *此功能只能用于信号和函数。
    *需开启自动交易才可取到值。
    *计算未平仓的平均价依据交易追踪器的委托中的「已成
    交」栏位的价格。
    重要提
    示
    如果用户手动关闭自动交易,关键字返回值不在改变,有
    可能保持非 0 值。

    # 示例:

    若当前策略在经纪商处有两笔未平仓多头交易,分别为一
    手进场价为 98,一手进场价为 102,则
    AvgEntryPrice_at_Broker_for_The_Strategy 返回值为 100

    # 说明

      返回目前经纪商处此策略的未平仓部位的平均价格。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。

    2.7 GrossLoss

    # 语法:

    语法 GrossLoss
    注意 此功能只能用于信号。

    # 示例:

    若有四笔亏损交易,分别亏损 10,5,2015,则 GrossLoss 会
    返回-50
    若在整个交易期间内没有亏损交易,则 GrossLoss 会返回 0

    # 说明

      返回目前亏损交易总金额(毛损)。

    2.8 GrossProfit

    # 语法:

    语法 GrossProfit
    注意 此功能只能用于信号

    # 示例:

    若有四笔盈利交易,分别盈利 10,5,2015,则 GrossProfit
    会返回 50
    若在整个交易期间内没有盈利交易,则 GrossProfit 会返回 0

    # 说明

      返回目前盈利交易总金额(毛利)。

    2.9 i_AvgEntryPrice_at_Broker

    # 语法:

    语法 i_AvgEntryPrice_at_Broker
    注意
    *i_AvgEntryPrice_at_Broker 只返回未平仓部位的平均进场
    价。
    *i_AvgEntryPrice_at_Broker 只能用在指标中。
    *i_AvgEntryPrice_at_Broker 只在有信号的数据中才有返回
    值。
    *测试结果:无论是否开启自动交易,在有未平仓的持仓时,返回值都是 0。不建议使用。

    # 示例:

    如果当前有 3 笔未平仓交易,进场价分别为 140,170200,
    则 i_AvgEntryPrice_at_Broker 返回值为 170。
    如果当前有 4 笔未平仓交易,进场价分别为 54,48,6050,
    则 i_AvgEntryPrice_at_Broker 返回值为 53

    # 说明

      返回目前经纪商处未平仓部位的平均价格。

    2.10 i_AvgEntryPrice_at_Broker_for_The_Strategy

    # 说明:用来在指标中提取信号信息。 返回值与 AvgEntryPrice_at_Broker_for_The_Strategy 一致。

    2.11 i_ClosedEquity

    # 语法:

    语法 i_ClosedEquity
    注意 测试结果:该关键字可用于函数、信号、指标中任何一个。

    # 示例:

    若已平仓部位的获利为 100 元,则 i_ClosedEquity 会返回 100

    # 说明

      返回目前已实现的损益(已平仓的总净利)。

    2.12 i_CurrentContracts/i_CurrentShares

    # 语法:

    与 CurrentContracts/CurrentShares 功能相同,用于函数脚本中。

    # 示例:

    测试结果:该关键字可用于函数、信号、指标中任何一个。

    2.13 i_MarketPosition/MarketPosition

    # 语法:

    语法 信号或函数或指标中:i_MarketPosition
    信号或函数中:MarketPosition(PosBack)
    参数
    PosBack——数值表达式,用来指定部位:
    0——未平仓部位;
    1——上一个平仓部位(最后一个平仓部位);
    2——上二个平仓部位,依次类推。
    若 PosBack 未指定,则预设为未平仓部位。
    返回
    1——多头部位
    0——无持仓
    -1——空头部位
    注意 i_MarketPosition 没有参数,只能用在当前部位情况。

    # 示例:

    若目前无持仓,则 MarketPosition 将会返回 0
    若目前部位为多头,则 MarketPosition 或 i_MarketPosition 返
    回 1
    若上一个平仓部位为空头,则 MarketPosition(1)会返回-1

    # 说明

      返回代表指定部位多空状态的数值。

    2.14 i_OpenEquity

    # 语法:

    语法 i_OpenEquity
    注意 此功能可用于函数、信号、指标中。
    i_OpenEquity=netprofit+openpositionprofit

    # 示例:

    若当前未实现的获利为 100 元,则 i_OpenEquity 会返回 100
    若当前未实现的亏损为 100 元,则 i_OpenEquity 会返回-100

    # 说明

      返回目前未实现的损益(净利+未平仓损益)。

    2.15 LargestLosTrade

    # 语法:

    语法 LargestLosTrade
    注意 此功能只能用于信号或函数中。

    # 示例:

    若四笔亏损交易,分别亏损 10,5,20,15,则 LargestLosTrade 会
    返回-20
    若无亏损交易,则 LargestLosTrade 会返回 0

    # 说明

      返回亏损交易中的最大亏损金额(单笔最大亏损交易)。

    2.16 LargestWinTrade

    # 语法:

    语法 LargestWinTrade
    注意 此功能只能用于信号或函数中。

    # 示例:

    若四笔获利交易,分别亏损 10,5,20,15,则 LargestWinTrade
    会返回 20
    若无获利交易,则 LargestWinTrade 会返回 0

    # 说明

      返回获利交易中的最大获利金额(单笔最大盈利交易)。

    2.17 MaxConsecLosers

    # 语法:

    语法 MaxConsecLosers
    注意 此功能只能用于信号或函数中。

    # 示例:

    若交易最多曾连续 3 笔亏损,则 MaxConsecLosers 会返回 3
    若无任何交易,则 MaxConsecLosers 会返回 0

    # 说明

      返回最大连续亏损交易次数。

    2.18 MaxConsecWinners

    # 语法:

    语法 MaxConsecWinners
    注意 此功能只能用于信号或函数中。

    # 示例:

    若交易最多曾连续 3 笔盈利,则 MaxConsecWinners 会返回 3
    若无任何交易,则 MaxConsecWinners 会返回 0

    # 说明

      返回最大连续盈利交易次数。

    2.19 MaxContractsHeld/MaxSharesHeld

    # 语法:

    语法
    MaxContractsHeld
    或
    MaxSharesHeld
    注意 此功能只能用于信号或函数中。

    # 示例:

    若未平仓部位最大有 10 手,则 MaxSharesHeld 会返回 10

    # 说明

      返回曾经同时持有的最大未平仓手数(最大持有合约数量)。

    2.20 MaxIDDrawDown

    # 语法:

    语法 MaxIDDrawDown
    注意 此功能只能用于信号或函数中。

    # 示例:

    若整个交易期间,权益资金最大减损为 500,则
    MaxIDDrawDown 会返回-500

    # 说明

      返回在交易期间内出现的最大权益资金减损金额,返回负值。 即策略最大潜在亏损。 

    2.21 NetProfit

    # 语法:

    语法 NetProfit
    注意 此功能只能用于信号或函数中。

    # 示例:

    若有两笔获利交易,分别获利 2510,有两笔亏损交易,
    分别亏损 510,则 NetProfit 会返回 20
    若有两笔交易,分别获利 105,有两笔亏损交易,分别亏
    损 2015,则 NetProfit 会返回-15
    若未进行任何交易,则 NetProfit 会返回 0

    # 说明

      返回交易净利总金额(总净利)。

    2.22 NumEvenTrades

    # 语法:

    语法 NumEvenTrades
    注意 此功能只能用于信号或函数中。

    # 示例:

    若有 10 笔损益两平交易,则 NumEvenTrades 会返回 10
    若无损益两平交易,则 NumEvenTrades 会返回 0

    # 说明

      返回损益两平交易的总笔数。

    2.23 NumLosTrades

    # 语法:

    语法 NumLosTrades
    注意 此功能只能用于信号或函数中。

    # 示例:

    若投资组合有 5 笔亏损交易,则 NumLosTrades 会返回 5
    若投资组合无任何交易,则 NumLosTrades 会返回 0

    # 说明

      返回亏损交易的总笔数。

    2.24 NumWinTrades

    # 语法:

    语法 NumWinTrades
    注意 此功能只能用于信号或函数中。

    # 示例:

    若投资组合有 5 笔盈利交易,则 NumWinTrades 会返回 5
    若投资组合无任何交易,则 NumWinTrades 会返回 0

    # 说明

      返回盈利交易的总笔数。

    2.25 PercentProfit

    # 语法:

    语法 PercentProfit
    注意 此功能只能用于信号或函数中。

    # 示例:

    若总交易笔数为 10 笔,其中 7 笔为获利交易,则 PercentProfit
    会返回 70

    # 说明

      返回获利交易次数的比例。

    2.26 TotalBarsEvenTrades

    # 语法:

    语法 TotalBarsEvenTrades
    注意 此功能只能用于信号或函数中。

    # 示例:

    若有 4 笔损益两平交易,持仓时间各为 2,5,34 根 K 棒。则TotalBarsEvenTrades 会返回 14。
    若无损益两平交易,则 TotalBarsEvenTrades 会返回 0

    # 说明

      返回损益两平交易的总持仓时间(以 K 棒数量表示)。

    2.27 TotalBarsLosTrades/TotalBarsLosTrade

    # 语法:

    语法
    TotalBarsLosTrades
    或:
    TotalBarsLosTrade
    注意 此功能只能用于信号或函数中。

    # 示例:

    若有 4 笔亏损交易,持仓时间各为 2,5,34 根 K 棒。则
    TotalBarsLosTrades 会返回 14。
    若无亏损交易,则 TotalBarsLosTrades 会返回 0

    # 说明

      返回亏损交易的总持仓时间(以 K 棒数量表示)。

    2.28 TotalBarsWinTrades/TotalBarsWinTrade

    # 语法:

    语法
    TotalBarsWinTrades
    或:
    TotalBarsWinTrade
    注意 此功能只能用于信号或函数中。

    # 示例:

    若有 4 笔盈利交易,持仓时间各为 2,5,34 根 K 棒。则
    TotalBarsWinTrades 会返回 14。
    若无盈利交易,则 TotalBarsWinTrades 会返回 0

    # 说明

      返回盈利交易的总持仓时间(以 K 棒数量表示)。

    2.29 TotalTrades

    # 语法:

    语法 TotalTrades
    注意 此功能只能用于信号或函数中。 

    # 示例:

    若总共交易 5 笔,则 TotalTrades 会返回 5
    若无交易记录,则 TotalTrades 会返回 0

    # 说明

      返回目前交易总笔数。

     【小结】做为前面 i_做为前缀的表示与indicator(指标)有关的函数

    =================================================

    之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!

    https://www.cnblogs.com/noah0532/

  • 相关阅读:
    8.8全民健身日,扒一扒音视频互动与健身的那些事儿
    游戏视频开发平台的特点
    音视频开发技术之自主集成第三方编解码器
    视频开发之外部音视频输入
    视频开发技术之文件传输限速
    视频开发技术之文件传输
    ubuntu16.04LTS+pycharm kuaijiefangshi
    install cuda
    Tensorflow实现MNIST
    TensorFlow导入mnist数据集
  • 原文地址:https://www.cnblogs.com/noah0532/p/13703172.html
Copyright © 2020-2023  润新知