IF HOLDING<0 THEN
BEGIN
IF ENTERPRICE-C>0 THEN
BEGIN
SELLSHORT(ENTERPRICE-C>=F1&&HOLDING=SS,SS/3,THISCLOSE);
SELLSHORT(C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
这个语句是不是严谨的满足,开空仓盈利F1个点位之后平仓1/3,如果从开仓后的最低点往上F2个点位之后全部平仓?
为什么我看图形上面有的满足了盈利F1个点位却没有平1/3的仓位,而是直接第二个条件就全部平掉的!!!!1
第二处箭头 按照思路应该会有一个平2手仓位的地方 可以却在第三处箭头全部平掉了!

此主题相关图片如下:qq截图20160126162530.png
我F1设置的是21个点位,第二个箭头那边和开仓点位都相差50个点位 在第二个箭头之前应该会平掉1/3了!
//做小时线的甲醇!
N1:=5;
SS:=6;
MA20:=STKINDIEX('','MAVAR.MA20',0,6,-1,1000);
HH12:=HHV(REF(H,1),12);
LL12:=LLV(REF(L,1),12);
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,25);
ARTRANG:=N1*ATR;
TURERANGE:=MAX(HH12-LL12,ARTRANG);
BKLINE:LL12+(7/10)*TURERANGE;
SKLINE:LL12+(3/10)*TURERANGE;
BKCONDITION:=H>BKLINE&&REF(L,1)<BKLINE&&ABS(C-O)<3*ATR&&REF(C,1)>MA20;
SKCONDITION:=L<SKLINE&&REF(H,1)>SKLINE&&ABS(C-O)<3*ATR&&REF(C,1)<MA20;
IF HOLDING=0 THEN BEGIN
BUY(BKCONDITION,SS,THISCLOSE);
BUYSHORT(SKCONDITION,SS,THISCLOSE);
END
ENTERHIGH:=HHV(H,ENTERBARS+1);
ENTERLOW:=LLV(L,ENTERBARS+1);
//处理多单
IF HOLDING>0 THEN
BEGIN
IF C-ENTERPRICE>0 THEN
BEGIN
IF H-ENTERPRICE>=F1*MINDIFF THEN BEGIN SELL(HOLDING=SS,SS/3,THISCLOSE);
END
SELL(ENTERHIGH-C>=F2*MINDIFF,HOLDING,THISCLOSE);
END
IF C-ENTERPRICE<0 THEN
BEGIN
SELL(ENTERPRICE-C>=F1&&HOLDING=SS,SS/2,THISCLOSE);
SELL(ENTERPRICE-C>=2*F1||C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
END
IF HOLDING<0 THEN
BEGIN
IF ENTERPRICE-C>0 THEN
BEGIN
SELLSHORT(ENTERPRICE-C>=F1&&HOLDING=SS,SS/3,THISCLOSE);
SELLSHORT(C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
IF ENTERPRICE-C<0 THEN
BEGIN
SELLSHORT(C-ENTERPRICE>=F1&&HOLDING=SS,SS/2,THISCLOSE);
SELLSHORT(C-ENTERPRICE>=2*F1||ENTERHIGH-C>=F2,HOLDING,THISCLOSE);
END
END
MA20:=STKINDIEX('','MAVAR.MA20',0,6,-1,1000);
我需要这个公式
以及你要给定F1和F2,不要随便来和你不一样
MYC:=HIGH*0.2+LOW*0.2+CLOSE*0.4+OPEN*0.2;
MA20:MA(MYC,20);
F1:21;
F2:33;