diy一个策略

diy一个周线级别的策略

通达信公式

ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND:= IF(TREND_>LTREND_, LTREND_, TREND_) COLORRED;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW; LB1:=REF(B1,1); DRAWICON(LB1, L, 38);

S1_:= (ABS(T-T1)<1 OR T<T1) AND T1>T2+1 AND T2>T3+1 ;
S1: FILTER(S1_, 3) NODRAW; LS1{LAST BAR OF S1}:=REF(S1,1); DRAWICON(LS1, H*1.02, 39);


BC:BARSCOUNT(C) COLORWHITE NODRAW; {开始于0的}
{BC_:= COUNT(C>0, 0)+10; CURRBARSCOUNT=5; };
START_C_CONS :=REF(C,BARSCOUNT(C)); ROC1 :=100* (C/REF(C,1)-1) ; ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND: IF(TREND_>LTREND_, LTREND_, TREND_) COLORYELLOW;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW;
B2_:= (T>T1+1) AND (T1>(T2+1) OR ABS(T1-T2)<1 ) AND (C>T AND L<T);
B2 := FILTER(B2_, 3);
{LB1:=REF(B1 OR B2,1); DRAWICON(LB1, L, 38);}
BUY(B1 OR B2, CLOSE);
BP1:BUYPRICE COLORWHITE NODRAW;
{PNL:= (C/BP1-1); STOPLOSS_EXIT:= PNL < -3/100.0;}

S1_:= (ABS(T-T1)<1 OR T<T1) AND (T1>(T2+1)) AND (T2>(T3+1)) ;
S1:= FILTER(S1_, 3) NODRAW;
{LAST BAR OF S1} {LS1:=REF(S1,1); DRAWICON(LS1, H*1.02, 39); }
SELL(S1, HIGH); {SELL(S1 OR STOPLOSS_EXIT, HIGH);}

{AUTOFILTER, NODRAW;}
SP1:SELLPRICE COLORMAGENTA NODRAW;
DRAWNUMBER(SELLBARS=1, H1.06, 100(SP1/BP1-1));

POS: IF(BUYBARS<SELLBARS, 1, 0), NODRAW COLORWHITE LINETHICK4;
ROC1_STRAT:= IF(BUYBARS=1, 100(C/BP1-1), ROC1POS);
EQ : MULAR(1+ROC1_STRAT/100, 0)*START_C_CONS COLORCYAN LINETHICK2;

{CEQ: CURRENTEQUITY;} {仅针对期货账户}
{BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O); DRAWNUMBER(LS1, H1.04, 100( SPRICE/BPRICE-1));};

BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O); DRAWNUMBER(LS1, H * 1.04, 100 * ( SPRICE/BPRICE-1));

示例

version 2.0

ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND: IF(TREND_>LTREND_, LTREND_, TREND_) COLORYELLOW;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW;
B2_:= (T>T1+1) AND (T1>(T2+1) OR ABS(T1-T2)<1 ) AND (C>T AND L<T);
B2 := FILTER(B2_, 3);
LB1:=REF(B1 OR B2,1); DRAWICON(LB1, L, 38);
BUY(B1 OR B2, CLOSE);

S1_:= (ABS(T-T1)<1 OR T<T1) AND (T1>(T2+1)) AND (T2>(T3+1)) ;
S1:= FILTER(S1_, 3) NODRAW; LS1{LAST BAR OF S1}:=REF(S1,1); DRAWICON(LS1, H*1.02, 39);
SELL(S1, HIGH);

BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O);
DRAWNUMBER(LS1, H1.04, 100( SPRICE/BPRICE-1));

BC:BARSCOUNT(C) NODRAW; {开始于0的}
{BC_:= COUNT(C>0, 0)+10;
CURRBARSCOUNT=5;
};

示例-with BS commition of w5 and w15:

with: stop loss of 3% and mid-price of this bar
results: 16.7% cgar and 19% mdd

示例 with BS commition of w3 and w3

with: stop loss of 3% and mid-price of this bar
results: 17.5% cgar and 18.5% mdd

version 3.0

ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND: IF(TREND_>LTREND_, LTREND_, TREND_) COLORYELLOW;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW;
B2_:= (T>T1+1) AND (T1>(T2+1) OR ABS(T1-T2)<1 ) AND (C>T AND L<T);
B2 := FILTER(B2_, 3);
LB1:=REF(B1 OR B2,1); DRAWICON(LB1, L, 38);
BUY(B1 OR B2, CLOSE);

S1_:= (ABS(T-T1)<1 OR T<T1) AND (T1>(T2+1)) AND (T2>(T3+1)) ;
S1:= FILTER(S1_, 3) NODRAW; LS1{LAST BAR OF S1}:=REF(S1,1); DRAWICON(LS1, H*1.02, 39);
SELL(S1, HIGH);

{
AUTOFILTER, NODRAW;
}
BP1:BUYPRICE;
SP1:SELLPRICE;
DRAWNUMBER(SELLBARS=1, H1.06, 100(SP1/BP1-1));

BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O);
DRAWNUMBER(LS1, H1.04, 100( SPRICE/BPRICE-1));

BC:BARSCOUNT(C) COLORWHITE NODRAW; {开始于0的}
{BC_:= COUNT(C>0, 0)+10;
CURRBARSCOUNT=5;
};

======================================
BC:BARSCOUNT(C) COLORWHITE NODRAW; {开始于0的}
{BC_:= COUNT(C>0, 0)+10; CURRBARSCOUNT=5; };
START_C_CONS :=REF(C,BARSCOUNT(C)); ROC1 :=100* (C/REF(C,1)-1) ; ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND: IF(TREND_>LTREND_, LTREND_, TREND_) COLORYELLOW;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW;
B2_:= (T>T1+1) AND (T1>(T2+1) OR ABS(T1-T2)<1 ) AND (C>T AND L<T);
B2 := FILTER(B2_, 3);
{LB1:=REF(B1 OR B2,1); DRAWICON(LB1, L, 38);}
BUY(B1 OR B2, CLOSE);

S1_:= (ABS(T-T1)<1 OR T<T1) AND (T1>(T2+1)) AND (T2>(T3+1)) ;
S1:= FILTER(S1_, 3) NODRAW;
{LAST BAR OF S1} {LS1:=REF(S1,1); DRAWICON(LS1, H*1.02, 39); }
SELL(S1, HIGH);

AUTOFILTER, NODRAW;
BP1:BUYPRICE COLORWHITE NODRAW; SP1:SELLPRICE COLORMAGENTA NODRAW;
DRAWNUMBER(SELLBARS=1, H1.06, 100(SP1/BP1-1));
POS: IF(BUYBARS<SELLBARS, 1, 0), NODRAW COLORWHITE LINETHICK4;

ROC1_STRAT:= IF(BUYBARS=1, 100(C/BP1-1), ROC1POS);
EQ : MULAR(1+ROC1_STRAT/100, 0)*START_C_CONS;

{BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O); DRAWNUMBER(LS1, H1.04, 100( SPRICE/BPRICE-1));};

final version

BC:BARSCOUNT(C) COLORWHITE NODRAW; {开始于0的}
{BC_:= COUNT(C>0, 0)+10; CURRBARSCOUNT=5; };
START_C_CONS :=REF(C,BARSCOUNT(C)); ROC1 :=100* (C/REF(C,1)-1) ; ATR14:=ATR.ATR(14); LATR:= REF(ATR14,1);

TREND_:= C+ATR14 COLORGREEN; LTREND_:=REF(TREND_,1);
TREND: IF(TREND_>LTREND_, LTREND_, TREND_) COLORYELLOW;
T:=TREND; T1:=REF(T,1); T2:=REF(T,2); T3:=REF(T,3);

{T本期走平:= ABS(T-T1)<1; T前一下跌:= T1<T2; T前二下跌:= T2<T3; T前一上升:= T1>T2; T前二上升:= T2>T3;}

{本期 的最后一个交易日收盘后, 开始检查买卖条件}
{事件发生时的下一周的首个交易日的开盘前, 9:15分开始下单, 期盼开盘价成交}
B1:= ABS(T-T1)<1 AND T1<T2 AND T2<T3 NODRAW;
B2_:= (T>T1+1) AND (T1>(T2+1) OR ABS(T1-T2)<1 ) AND (C>T AND L<T);
B2 := FILTER(B2_, 3);
{LB1:=REF(B1 OR B2,1); DRAWICON(LB1, L, 38);}
BUY(B1 OR B2, CLOSE);
BP1:BUYPRICE COLORWHITE NODRAW;
{PNL:= (C/BP1-1); STOPLOSS_EXIT:= PNL < -3/100.0;}

S1_:= (ABS(T-T1)<1 OR T<T1) AND (T1>(T2+1)) AND (T2>(T3+1)) ;
S1:= FILTER(S1_, 3) NODRAW;
{LAST BAR OF S1} {LS1:=REF(S1,1); DRAWICON(LS1, H*1.02, 39); }
SELL(S1, HIGH); {SELL(S1 OR STOPLOSS_EXIT, HIGH);}

{AUTOFILTER, NODRAW;}
SP1:SELLPRICE COLORMAGENTA NODRAW;
DRAWNUMBER(SELLBARS=1, H1.06, 100(SP1/BP1-1));

POS: IF(BUYBARS<SELLBARS, 1, 0), NODRAW COLORWHITE LINETHICK4;
ROC1_STRAT:= IF(BUYBARS=1, 100(C/BP1-1), ROC1POS);
EQ : MULAR(1+ROC1_STRAT/100, 0)*START_C_CONS COLORCYAN LINETHICK2;

{CEQ: CURRENTEQUITY;} {仅针对期货账户}
{BPRICE:= VALUEWHEN(LB1, O); SPRICE:= VALUEWHEN(LS1, O); DRAWNUMBER(LS1, H1.04, 100( SPRICE/BPRICE-1));};

原文地址:https://www.cnblogs.com/duan-qs/p/12903509.html