前后差值策略(TB版)_第1页
前后差值策略(TB版)_第2页
前后差值策略(TB版)_第3页
前后差值策略(TB版)_第4页
前后差值策略(TB版)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前后差值策略(TB版)一种基于价格波动范围的交易策略,旨在通过分析价格的波动性来确定入场点和离场点。该策略的核心思想是利用历史价格数据来识别市场的波动范围,并在此基础上设定买入和卖出的条件。交易逻辑1.波动范围计算:策略首先计算前一根K线的高低波动范围。具体来说,它计算最高价与收盘价之间的差值,以及收盘价与最低价之间的差值,并取这两个差值的最大值。这个最大值代表了市场在前一周期内的波动幅度。2.上下边界的设定:基于计算出的波动范围,策略设定一个上边界和一个下边界。上边界通常是当前K线开盘价加上一定比例的波动范围,而下边界则是当前K线开盘价减去相同比例的波动范围。这个比例通常由用户自定义。3.入场条件:-买入条件:当市场价格未处于多头状态且当前K线的最高价达到或超过上边界时,策略会触发买入操作。买入价格通常设定为开盘价和上边界中的较高者,以确保在价格上升时能够以较高的价格买入。-卖空条件:当市场价格未处于空头状态且当前K线的最低价达到或低于下边界时,策略会触发卖空操作。卖空价格通常设定为开盘价和下边界中的较低者,以确保在价格下跌时能够以较低的价格卖空。4.风险管理:策略还包括了止损和止盈的逻辑。止损条件通常基于价格相对于之前设定的最高或最低价的行为来判定,以防止亏损扩大。止盈条件则用于锁定利润,确保在市场有利时能够及时退出。5.交易执行:当满足买入或卖空条件时,策略会执行相应的交易操作。同时,策略会根据市场价格的变动动态调整上下边界,以适应市场的变化。特点1.波动性驱动:该策略依赖于市场价格的波动性来确定交易机会。通过设定上下边界,策略能够在价格波动较大的情况下捕捉到更多的交易机会。2.风险控制:策略内置了止损和止盈机制,能够在市场不利时及时平仓,控制风险。这种风险管理方式有助于保护投资者的资金安全。3.灵活性:通过调整波动范围的计算方法和上下边界的设定比例,策略能够适应不同市场和资产的特点,具有一定的灵活性。4.简单直观:策略的逻辑相对简单直观,易于理解和实现。这使得它在实际操作中具有较高的可操作性。总之,前后差值策略是一种基于价格波动范围的交易策略,通过设定上下边界来确定入场点和离场点,并通过止损和止盈机制来管理风险。该策略适用于多种市场环境,具有较高的灵活性和可操作性。本策略其主要逻辑可以分为以下几个部分:1.变量定义:-设置手数(`snum`)。-定义周期最高价(`h20`,`h2`)和周期最低价(`l20`,`l2`)的引用值。-初始化两个用于记录价格行为的变量`nlow`和`mhigh`。2.条件判断与赋值:-通过`BARSLAST`函数判断是否满足特定条件,并赋值给相应的变量。例如,如果在过去20个周期内的最高价中又创新高,且在接下来的3个周期内出现了两次新低,则更新`nlow`的值。3.开仓逻辑:-根据不同的条件设定买入(`BuyCond`)和卖出(`BuyshortCond`)的逻辑。这包括了对于创纪录高价或低价后的一定时间内出现相反情况的判断,以及在满足这些条件后根据价格行为决定是否执行交易。4.止损与止盈逻辑:-设置了买入和卖出的止损(`SellCond1`,`SellCond2`,`SellshortCond1`,`SellshortCond2`)和止盈(`SellCond2`,`SellshortCond2`)条件。这些条件基于价格相对于之前的最高或最低价的行为来判定是否执行平仓操作。5.交易执行:-如果满足开仓条件,则执行买入或卖出操作。同时,还包含了止损和止盈的逻辑,以管理潜在的损失和锁定利润。策略信号代码:ParamsNumericNum(0.5);NumericLots(1);VarsNumericScal;NumericUpBand;NumericLoBand;NumericMyEntryPrice;BeginScal=Max((HighD(1)-CloseD(1)),(CloseD(1)-LowD(1)));UpBand=OpenD(0)Num*Scal;LoBand=OpenD(0)-Num*Scal;PlotNumeric("UpBand",UpBand);PlotNumeric("LoBand",LoBand);If(MarketPosition<>1&&High>=UpBand){MyEntryPrice=Max(Open,UpBand);Buy(Lots,MyEntryPrice);}If(MarketPosition<>-1&&Low<=LoBand){MyEntryPrice=Min(Open,LoBand);SellShort(Lots,MyEntryPrice);}End代码说明:1.

Params

-这一部分定义了参数,这些参数可以由用户自定义设置:

NumericNum(0.5);

-定义了一个名为

Num

的数值型参数,默认值为0.5。这个参数可能用于设置波动范围的百分比。

NumericLots(1);

-定义了一个名为

Lots

的数值型参数,表示交易的合约数量,默认为1。2.

Vars

-这一部分定义了变量:

NumericScal;

-定义了一个名为

Scal

的数值型变量,用于存储价格波动范围。

NumericUpBand;

-定义了一个名为

UpBand

的数值型变量,用于存储上边界。

NumericLoBand;

-定义了一个名为

LoBand

的数值型变量,用于存储下边界。

NumericMyEntryPrice;

-定义了一个名为

MyEntryPrice

的数值型变量,用于存储实际的入场价格。3.

Begin...End

-这是脚本的主要执行部分。4.

Scal=Max((HighD(1)-CloseD(1)),(CloseD(1)-LowD(1)));

-计算前一根K线的最高价和收盘价之间的差值,以及收盘价和最低价之间的差值,取两者之间的最大值作为

Scal

。5.

UpBand=OpenD(0)Num*Scal;

-计算上边界,等于当前K线的开盘价加上

Num

乘以

Scal

。6.

LoBand=OpenD(0)-Num*Scal;

-计算下边界,等于当前K线的开盘价减去

Num

乘以

Scal

。7.

PlotNumeric("UpBand",UpBand);

-在图表上绘制名为"UpBand"的数值,显示上边界。8.

PlotNumeric("LoBand",LoBand);

-在图表上绘制名为"LoBand"的数值,显示下边界。9.

If(MarketPosition<>1&&High>=UpBand)

-如果当前市场位置不是多头(

MarketPosition<>1

)且最高价达到或超过上边界,则执行以下操作:

MyEntryPrice=Max(Open,UpBand);

-设置入场价格为开盘价和上边界中的较大值。

Buy(Lots,MyEntryPrice);

-买入

Lots

数量的合约,价格为

MyEntryPrice

。10.

If(MarketPosition<>-1&&Low<=LoBand)

-如果当前市场位置不是空头(

MarketPosition<>-1

)且最低价达到或低于下边界,则执行以下操作:

MyEntryPrice=Min(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论