|
今天分享一些交易策略,这十套系统基本是我们最常听到的交易方法,既简单又不简单,系统逻辑本身很简单,但能选择坚持使用系统的人本身就很不简单,正对应那句:大道至简。
源码如下供大家参考:
单均线:
MA2:MA(C,20);//定义一根20日均线
CROSS(C,MA2),BPK;//当收盘价在20日均线之上,如果有空单平掉反手做多。
CROSS(MA2,C),SPK;//当收盘价在20日均线之下,如果有多单平掉反手做空。
AUTOFILTER;//每一次开仓之后必须是平仓。
双均线交易系统
MA1:=MA(C,5);//定义5日均线
MA2:=MA(C,20);//定义20日均线
CROSS(MA1,MA2),BPK;//当5日均线上传20日均线时,平空翻多
CROSS(MA2,MA1),SPK;//当5日均线下传20日均线时,平多翻空
AUTOFILTER;//开仓完事之后必须是平仓.
ATR通道交易系统
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26);//定义ATR
MA1:MA(C,20);//定义20日均线
SHANGGUI:MA1+2*ATR;//上轨:20日均线+2个ATR
XIAGUI:MA1-2*ATR;//下轨:20日均线-2个ATR
C>SHANGGUI&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(1);//当价格大于上轨,买开1手。
C<XIAGUI&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,SK(1);//当价格小于下轨,卖开1手。
BKVOL>0&&C<MA1,CLOSEOUT;//当有多单,价格小于中轨平仓
SKVOL>0&&C>MA1,CLOSEOUT;//当有空单,价格大于中轨平仓
布林通道:
MID:MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨
CROSS(C,TOP),BPK(1);//当价格金叉上轨,反手买开
CROSSDOWN(C,BOTTOM),SPK(1);//当价格死叉下轨,反手卖开
布林通道2:
MID:MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨
C>TOP,BK(1);//价格大于上轨,买开1手
BKVOL>0&&C<MID,CLOSEOUT;//有多单,价格小于中轨,平仓
C<BOTTOM,SK(1);//价格小于下轨,卖开1手
SKVOL>0&&C>MID,CLOSEOUT;//有空单,价格大于中轨,平仓。
MACD之D策略:
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
DIFF>0,BPK;//当短周期与长周期的收盘价的指数平滑移动平均值的差大于0,反手买开
DIFF<0,SPK;//当短周期与长周期的收盘价的指数平滑移动平均值的差小于0,反手卖开
AUTOFILTER;
MACD之X策略:
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
DIFF>DEA,BPK;//当差大于其移动平均,反手买开
DIFF<DEA,SPK;//当差小于其移动平均,反手卖开
AUTOFILTER;
MACD之G策略:
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
Z:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线,并且定义为Z。
//上面是MACD的代码
DIFF>DEA&&DIFF>0,BK(1);//DIFF大于DEA,并且diff大于0时做多。
BKVOL>0&&DIFF<DEA,SP(1);//有多单时,DIFF小于DEA就平掉多单。
DIFF<DEA&&DIFF<0,SK(1);//DIFF小于DEA,并且DIFF小于0时做空。
SKVOL>0&&DIFF>DEA,BP(1);//有空单时,DIFF小于DEA就平掉空单。
裸K:
C>HV(H,15),BK(1);//价格大于最近15天的最高点,做多1手
BKVOL>0&&C<LV(C,8),CLOSEOUT;//有多单,并且价格跌破了最近8天收盘价的最低值,全平。
C<LV(L,15),SK(1);//价格小于最近15天的最低点,做空1手
SKVOL>0&&C>HV(C,8),CLOSEOUT;//有空单,并且价格突破最近8天的收盘价的最高值,全平。
算法式:
C>=HV(H,15),BK(1);//价格大于最近15天的高点,买开
C-BKPRICE>0.05*C&&(BKHIGH-C ) / (BKHIGH-BKPRICE)>0.3,CLOSEOUT;//浮盈价格的5%,并且利润回吐30%,平仓
BKVOL>0&&BKPRICE-C>0.02*C,CLOSEOUT;//有多单,并且亏损价格的2%,平仓。
C<=LV(L,15),SK(N3);//价格小于最近15天的低点,卖开
SKPRICE-C>0.05*C&&(C-SKLOW ) / (SKPRICE-SKLOW)>0.3,CLOSEOUT;//浮盈价格的5%,并且利润回吐30%,平仓
SKVOL>0&&C-SKPRICE>0.02*C,CLOSEOUT;//有多单,并且亏损价格的2%,平仓
MULTSIG_MIN(0,0,4);//指令价模型
普通加仓类:
TIANQI:=IF(BARPOS<26,BARPOS,26);
TR : =MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
ATR : MA(TR,TIANQI),COLORMAGENTA;//求N个周期内的TR的简单移动平均
C>HV(H,15),BK(1);//突破15天的最高点,买开一手
BKVOL>0&&C>HV(H,20),BK(1);//有多单且价格大于20天的最高点,加仓一手。
BKVOL>0&&C<LV(L,10),CLOSEOUT;//有多单且价格跌破10天的最低点,清仓。
BKVOL>0&&BKPRICE-C>2*ATR,CLOSEOUT;// 有多单且亏2个ATR,止损。
C<LV(L,15),SK(1);//跌破15天的最低点,卖开一手
SKVOL>0&&C<LV(L,20),SK(1);//有空单,且继续跌破20天的最低点,加仓一手
SKVOL>0&&C>HV(H,10),CLOSEOUT;//有空单且价格大于了10天的最高点,平仓
SKVOL>0&&C-SKPRICE>2*ATR,CLOSEOUT;//有空单,亏损2个ATR止损。
20次加仓法:
MA3:=MA(CLOSE,20);//定义20日均线
BKVOL=0&&C>MA3&&CLOSE>(HV(H,5)),BK(1);//无持仓且价格大于20日均线且价格大于最近5天的高点,买开1手
BKVOL>0&&BARSBK>=1&&CLOSE>(HV(H,5)),BK(1);// 有多单,且当天没有买开,并且价格大于了最近5天的最高点,加仓一手
BKVOL>0&&C<=MA3,SP(BKVOL);//价格小于20日均线,全平
SKVOL=0&&C<MA3&&CLOSE<(LV(L,5)),SK(1);//无持仓且价格小于20日均线且价格小于5天的最低点,卖开1手
SKVOL>=0&&BARSSK>=1&&CLOSE<(LV(L,5)),SK(1);//有空单,且当天没有卖开,并且价格小于了最近5天的最低点,加仓一手
SKVOL>0&&C>=MA3,BP(SKVOL);//价格大于20日均线,全平
TRADE_AGAIN(10);//每一行,最多可以连续触发10次。 |
|