Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:加仓代码实现

1楼
陈志海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

图片点击可在新窗口打开查看此主题相关图片如下:fxejw1u0y`{a~801)qfv.png
图片点击可在新窗口打开查看
 这段代码没有实现加仓的效果啊?出在哪里?
2楼
陈志海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

3楼
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
4楼
wenarm 发表于:2018/9/26 13:45:16

INPUT:N(30,5,250,10);
VARIABLE:SUMON=0;
VARIABLE:SUMBUY=0;

MA30:MA(CLOSE,N);
TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TR1,20);
IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN
   BEGIN
   BUY(1,1,MARKET);
   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);

   SUMON:=0;
   SUMBUY:=0;
 END

5楼
陈志海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
这段代码加载在图上变成只开空,不开多了,只对做空作对了最大加仓十次,没有对 开多加仓,求助老师们
6楼
wenarm 发表于:2018/9/26 16:01:24

图表不支持锁仓,开仓前先平反手仓位。另外,仓位类型开关不能共用。

 

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
    SELLshort(1,0,MARKET);
    SUMON:=0;
    SUMBUY:=0;
END
IF CROSS(MA30,CLOSE) AND HOLDING>0 THEN BEGIN
   SELL(1,0,MARKET);
   SUMON:=0;
   SUMBUY:=0;
END


IF CROSS(CLOSE,MA30) AND HOLDING=0 THEN
   BEGIN
   BUY(1,4,MARKET);

   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
   BUYSHORT(1,4,MARKET);

   SUMON:=-1;
END
IF ENTERPRICE-CLOSE>=0.5*ATR AND HOLDING<0 AND SUMON=-1 AND SUMBUY<=10 THEN
   BEGIN
   BUYSHORT(1,4,MARKET);

   SUMBUY:=SUMBUY+1;
 END

 

共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04297 s, 3 queries.