以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 加仓代码实现 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=165687) |
-- 作者:陈志海11 -- 发布时间:2018/9/26 13:28:04 -- 加仓代码实现 INPUT:N(30,5,250,10);
MA30:MA(CLOSE,N);
TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TR1,20);
SUMON:0;
SUMBUY:0;
IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN
BEGIN
BUY(1,1,MARKET);
DRAWTEXT(1 ,LOW ,"开多" );
SUMON=1;
END
IF CLOSE-ENTERPRICE>=0.5*ATR AND SUMON=1 AND SUMBUY<=3 AND HOLDING>0 THEN
BEGIN
BUY(1,1,MARKET);
SUMBUY=SUMBUY+1;
END
IF CROSS(MA30,CLOSE) THEN BEGIN
SELL(1,0,MARKET);
DRAWTEXT(1 ,LOW ,"平多" );
SUMON=0;
SUMBUY=0;
END
这段代码没有实现加仓的效果啊?出在哪里?
|
-- 作者:陈志海11 -- 发布时间:2018/9/26 13:39:05 -- INPUT:N(30,5,250,10); MA30:MA(CLOSE,N); TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:MA(TR1,20); VARIABLE:SUMON=0,SUMBUY=0; IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN BEGIN BUY(1,1,MARKET); DRAWTEXT(1 ,LOW ,"开多" ); SUMON=1; END IF CLOSE-ENTERPRICE>=0.5*ATR AND SUMON=1 AND SUMBUY<=3 AND HOLDING>0 THEN BEGIN BUY(1,1,MARKET); SUMBUY=SUMBUY+1; END IF CROSS(MA30,CLOSE) AND HOLDING>0 THEN BEGIN SELL(1,0,MARKET); DRAWTEXT(1 ,LOW ,"平多" ); SUMON=0; SUMBUY=0; END |
-- 作者:FireScript -- 发布时间:2018/9/26 13:40:06 -- 1.赋值 用“:=” 单用 “=”是无效的。2.sumon和SUMBUY用全局变量方式定义。 INPUT:N(30,5,250,10);
MA30:MA(CLOSE,N); TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:MA(TR1,20); VARIABLE:SUMON:=0,SUMBUY:=0; IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN BEGIN BUY(1,1,MARKET); DRAWTEXT(1 ,LOW ,"开多" ); SUMON:=1; END IF CLOSE-ENTERPRICE>=0.5*ATR AND SUMON=1 AND SUMBUY<=3 AND HOLDING>0 THEN BEGIN BUY(1,1,MARKET); SUMBUY:=SUMBUY+1; END IF CROSS(MA30,CLOSE) and holding>0 THEN BEGIN SELL(1,0,MARKET); DRAWTEXT(1 ,LOW ,"平多" ); SUMON:=0; SUMBUY:=0; end |
-- 作者:wenarm -- 发布时间:2018/9/26 13:45:16 -- INPUT:N(30,5,250,10); IF CLOSE-ENTERPRICE>=0.5*ATR AND SUMON=1 AND SUMBUY<=3 AND HOLDING>0 THEN SUMON:=0; |
-- 作者:陈志海11 -- 发布时间:2018/9/26 15:30:56 -- INPUT:N(95,5,250,10); MA30:MA(CLOSE,N); TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:MA(TR1,20); VARIABLE:SUMON:=0,SUMBUY:=0; IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN BEGIN BUY(1,4,MARKET); DRAWTEXT(1 ,LOW ,"开多" ); SUMON:=1; END IF CLOSE-ENTERPRICE>=0.5*ATR AND SUMON=1 AND SUMBUY<=10 AND HOLDING>0 THEN BEGIN BUY(1,4,MARKET); SUMBUY:=SUMBUY+1; END IF CROSS(MA30,CLOSE) AND HOLDING>0 THEN BEGIN SELL(1,0,MARKET); DRAWTEXT(1 ,LOW ,"平多" ); SUMON:=0; SUMBUY:=0; END IF CROSS(MA30,CLOSE) AND HOLDING=0 THEN BEGIN BUYSHORT(1,4,MARKET); DRAWTEXT(1 ,LOW ,"开空" ); SUMON:=1; END IF ENTERPRICE-CLOSE>=0.5*ATR AND HOLDING<0 AND SUMON=1 AND SUMBUY<=10 THEN BEGIN BUYSHORT(1,4,MARKET); DRAWTEXT(1 ,LOW ,"开空" ); SUMBUY:=SUMBUY+1; END IF CROSS(CLOSE,MA30) AND HOLDING<0 THEN BEGIN SELLSHORT(1,0,MARKET); SUMON:=0; SUMBUY:=0; END 这段代码加载在图上变成只开空,不开多了,只对做空作对了最大加仓十次,没有对 开多加仓,求助老师们
|
-- 作者:wenarm -- 发布时间:2018/9/26 16:01:24 -- 图表不支持锁仓,开仓前先平反手仓位。另外,仓位类型开关不能共用。
INPUT:N(95,5,250,10); IF CROSS(CLOSE,MA30) AND HOLDING<0 THEN
SUMON:=1; SUMON:=-1; SUMBUY:=SUMBUY+1; |