EMA糸统交易策略(TS版).docx
EMA糸统交易策略(TS版)
本策略是一个基于EMA的交易策略,主要使用了EMA(指数移动平均线)来识别交易信号,并定义了买入和卖出的条件。
策略概述:
该策略通过计算23日和30日的EMA(指数移动平均线)来识别市场趋势,并基于这些趋势生成买入(做多)和卖出(做空)信号。
策略中定义了一系列变量来跟踪EMA值、当前价格与EMA的关系、以及确定起始交易柱的最高价和最低价。
关键变量:
Length1(23):计算EMA1的时间周期。
Length2(30):计算EMA2的时间周期。
Lots(1):每次交易的手数。
EMA1、EMA2:分别为23日和30日的EMA值。StartBarHigh、StartBarLow:起始交易柱的最高价和最低价。
StartBarHighSet、StartBarLowSet:标记是否已设置起始交易柱的最高价和最低价。
策略逻辑:
计算EMA:使用XAverage函数计算23日和30日的EMA值(EMA1和EMA2)。
设置起始交易柱:
当当前收盘价高于两个EMA值时,如果尚未设置起始交易柱的最高价,则记录当前最高价为起始交易柱的最高价,并标记为已设置。类似地,
当当前收盘价低于两个EMA值时,如果尚未设置起始交易柱的最低价,则记录当前最低价为起始交易柱的最低价,并标记为已设置。
生成交易信号:
如果起始交易柱的最高价已设置且当前最高价高于起始价,则生成买入(做多)信号,并重置起始交易柱最高价标记。
如果起始交易柱的最低价已设置且当前最低价低于起始价,则生成卖出(做空)信号,并重置起始交易柱最低价标记。
交易执行:
买入和卖出操作均以市价单执行,交易手数由Lots变量指定。
绘制EMA线:
将计算出的EMA1和EMA2绘制在图表上,以便交易者观察趋势。
这个策略的核心是利用EMA指标来识别市场趋势的变化,并基于这些变化生成交易信号。
通过设定起始交易柱的最高价和最低价,策略能够更精确地捕捉价格突破的时刻,从而进行买入或卖出操作。
策略代码:
Vars:
intLength1(23);
Vars:
intLength2(30);
Vars:
intLots(1);
Vars:
doubleEMA1(0);
Vars:
doubleEMA2(0);
Vars:
doubleStartBarHigh(0);
Vars:
doubleStartBarLow(0);
Vars:
boolStartBarHighSet(false);
Vars:
boolStartBarLowSet(false);
//计算23日和30日的EMA
EMA1=XAverage(Close,Length1);
EMA2=XAverage(Close,Length2);
//检查是否为起始柱,并设置起始柱的最高价和最低价
ifCloseEMA1andCloseEMA2andnotStartBarHighSetthen
begin
StartBarHigh=High[1];
StartBarHighSet=true;
end
else
ifCloseEMA1andCloseEMA2andnotStartBarLowSetthen
begin
StartBarLow=Low[1];
StartBarLowSet=true;
end;
//检查是否满足做多条件
ifStartBarHighSetandHighStartBarHighthen
begin
//产生做多信号
Buy(LongEntry,Lots,MarketOrder,Close);
StartBarHighSet=false;//重置起始柱最高价标记
end;
//检查是否满足做空条件
ifStartBarLowSetandLowStartBarLowthen
begin
//产生做空信号
SellShort(ShortEntry,Lots,MarketOrder,Close);
StartBarLowSet=false;//重置起始柱最低价标记
end;
//绘制EMA线
Plot1(EMA1,EMA1);
Plot1(EMA2,EMA2);
●借鉴学习使用,请勿实盘。应充分验证!