以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]请教老师帮忙改一个简单的策略 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=138083) |
-- 作者:70001789 -- 发布时间:2016/8/16 16:21:32 -- [求助]请教老师帮忙改一个简单的策略 老师,您好,最近刚在学习,编了了个简单的均线系统,希望在开仓后就依赖固定的止盈止损值来平仓,但下面编写出来的是在均线重新上穿或下穿的时候就会有一次平仓,因为看视频说的都是先平后开,希望老师能帮忙解决,谢谢! //9:15-10:30,3分钟均线上穿9分钟均线做多,下穿做空,20点止损,50点止盈 //中间变量 M1:MA(C,N1); M2:MA(C,N2); //建立多头进场条件 LONG:CROSS(M1,M2) AND TIME>091500 AND TIME<103000; IF LONG THEN
BEGIN
SELLSHORT(HOLDING<0,HOLDING,THISCLOSE);
BUY(LONG,1,MARKET);
END //建立空头进场条件 SHORT:CROSS(M2,M1) AND TIME>091500 AND TIME<103000; IF SHORT THEN
BEGIN
SELL(HOLDING>0,HOLDING,THISCLOSE);
BUYSHORT(SHORT,1,MARKET);
END //止损 IF HOLDING<0 AND (H-ENTERPRICE>20) THEN SELLSHORT(1,0,LIMITR,ENTERPRICE+20); IF HOLDING>0 AND (L-ENTERPRICE<-20) THEN SELL(1,0,LIMITR,ENTERPRICE-20); //止盈 IF HOLDING<0 AND (ENTERPRICE-L>50) THEN SELLSHORT(1,0,LIMITR,ENTERPRICE-50); IF HOLDING>0 AND (H-ENTERPRICE>50) THEN SELL(1,0,LIMITR,ENTERPRICE+50); //10:30前平仓 SELL(TIME>103000 AND HOLDING>0,0,THISCLOSE); SELLSHORT(TIME>103000 AND HOLDING>0,0,THISCLOSE); |
-- 作者:jinzhe -- 发布时间:2016/8/16 16:35:31 -- //中间变量
M1:MA(C,N1);
M2:MA(C,N2);
//建立多头进场条件
LONG:CROSS(M1,M2) AND TIME>091500 AND TIME<103000;
IF LONG THEN
BEGIN
//SELLSHORT(HOLDING<0,HOLDING,THISCLOSE);
BUY(LONG,1,MARKET);
END
//建立空头进场条件
SHORT:CROSS(M2,M1) AND TIME>091500 AND TIME<103000;
IF SHORT THEN
BEGIN
//SELL(HOLDING>0,HOLDING,THISCLOSE);
BUYSHORT(SHORT,1,MARKET);
END
//止损
IF HOLDING<0 AND (H-ENTERPRICE>20) THEN SELLSHORT(1,0,LIMITR,ENTERPRICE+20);
IF HOLDING>0 AND (L-ENTERPRICE<-20) THEN SELL(1,0,LIMITR,ENTERPRICE-20);
//止盈
IF HOLDING<0 AND (ENTERPRICE-L>50) THEN SELLSHORT(1,0,LIMITR,ENTERPRICE-50);
IF HOLDING>0 AND (H-ENTERPRICE>50) THEN SELL(1,0,LIMITR,ENTERPRICE+50);
//10:30前平仓
SELL(TIME>103000 AND HOLDING>0,0,THISCLOSE);
SELLSHORT(TIME>103000 AND HOLDING>0,0,THISCLOSE);
我把平仓反手里面的平仓给删了,这样就不会出现开仓紧跟着平仓出现额
|
-- 作者:70001789 -- 发布时间:2016/8/16 20:29:54 -- 我也有删过 但应用于图的时候还是会没到止盈50个点就在均线交叉时平仓了,很多也没到止盈点就出现平仓信号了 ![]() ![]() ![]() ![]() |
-- 作者:jinzhe -- 发布时间:2016/8/17 8:58:50 -- M1:MA(C,N1);
M2:MA(C,N2);
//建立多头进场条件
LONG:CROSS(M1,M2) AND TIME>091500 AND TIME<103000;
IF LONG THEN
BEGIN
//SELLSHORT(HOLDING<0,HOLDING,THISCLOSE);
BUY(LONG,1,MARKETr);
END
//建立空头进场条件
SHORT:CROSS(M2,M1) AND TIME>091500 AND TIME<103000;
IF SHORT THEN
BEGIN
//SELL(HOLDING>0,HOLDING,THISCLOSE);
BUYSHORT(SHORT,1,MARKETr);
END
//止损
IF HOLDING<0 AND (H-ENTERPRICE>20) and enterbars>0 THEN SELLSHORT(1,0,LIMITR,ENTERPRICE+20);
IF HOLDING>0 AND (L-ENTERPRICE<-20) and enterbars>0 THEN SELL(1,0,LIMITR,ENTERPRICE-20);
//止盈
IF HOLDING<0 AND (ENTERPRICE-L>50) and enterbars>0 THEN SELLSHORT(1,0,LIMITR,ENTERPRICE-50);
IF HOLDING>0 AND (H-ENTERPRICE>50) and enterbars>0 THEN SELL(1,0,LIMITR,ENTERPRICE+50);
//10:30前平仓
SELL(TIME>103000 AND HOLDING>0,0,THISCLOSE);
SELLSHORT(TIME>103000 AND HOLDING>0,0,THISCLOSE);
|
-- 作者:70001789 -- 发布时间:2016/8/17 9:38:07 -- 老师您看一下,没到止损点数就已经平仓了 ![]() ![]() ![]() ![]() |
-- 作者:jinzhe -- 发布时间:2016/8/17 9:49:16 -- 你先调试一下,看看是不是真如你所讲的, 光靠看是没用的,要调试 调试方法:http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=1246&replyID=&skin=1
|
-- 作者:70001789 -- 发布时间:2016/8/17 9:53:57 -- 好的 谢谢老师! |