Rss & SiteMap

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

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

标题:[求助]请金字塔老师帮忙改编成图表交易程序,万分感谢!

1楼
lqf3618 发表于:2018/10/22 16:32:43
MA7:   MA(C,7);
MA16 : MA(CLOSE,16);
FS:=  MA16  + 2*STD(CLOSE,16);
FS1:= MA16 - 2*STD(CLOSE,16);
SJ:=BARSLAST(DATE<>REF(DATE,1) OR BARPOS=1)+1;
SJE:=SJ>=0 AND TIME<=230000 ;
JS:=TIME>=233000;

TJ1:=MA7>MA16 AND C>MA7;
TJ2:=MA7<MA16 AND C<MA7;
CL:=SJE AND C>FS;
CL2:=SJE AND C<FS1;
TJ3:=IF(SJ=1,0,IF(CL,1,IF(CL2,-1,REF(TJ3,1))));
TJ6:=IF(SJ=1,0,IF(REF(TJ6,1)<>1 AND (SJE AND (CL OR (TJ1 AND TJ6=-1))),1,IF(REF(TJ6,1)<>-1 AND (SJE AND (CL2 OR (TJ2 AND TJ3=1))),-1,IF(JS,0,REF(TJ6,1)))));

DRAWICON(REF(TJ6,1)<>1 AND TJ6=1,L,4);
DRAWICON(REF(TJ6,1)<>-1 AND TJ6=-1,H,5);
DRAWTEXT(REF(TJ6,1)=0 AND TJ6=1,L,'      开多');
DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,'      开空');
DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,'      平空开多');
DRAWTEXT(REF(TJ6,1)=1 AND TJ6=-1,H,'      平多开空');
DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,'      收盘平仓');
STICKLINE(TJ6>0,H,MAX(O,C),0,1),COLORRED;
STICKLINE(TJ6>0,MIN(O,C),L,0,1),COLORRED;
STICKLINE(TJ6>0,O,C,4,1),COLORRED;
STICKLINE(TJ6<0,H,L,0,0),COLORGREEN;
STICKLINE(TJ6<0,O,C,4,0),COLORGREEN;
STICKLINE(TJ6=0,H,L,0,0),COLORYELLOW;

2楼
wenarm 发表于:2018/10/22 16:48:50

参数部分请自行填充。改写很简单,就是把你开平标记的条件放到开平语句中即可

 

MA7:   MA(C,7);
MA16 : MA(CLOSE,16);
FS:=  MA16  + 2*STD(CLOSE,16);
FS1:= MA16 - 2*STD(CLOSE,16);
SJ:=BARSLAST(DATE<>REF(DATE,1) OR BARPOS=1)+1;
SJE:=SJ>=0 AND TIME<=230000 ;
JS:=TIME>=033000;


TJ1:=MA7>MA16 AND C>MA7;
TJ2:=MA7<MA16 AND C<MA7;
CL:=SJE AND C>FS;
CL2:=SJE AND C<FS1;
TJ3:=IF(SJ=1,0,IF(CL,1,IF(CL2,-1,REF(TJ3,1))));
TJ6:=IF(SJ=1,0,IF(REF(TJ6,1)<>1 AND (SJE AND (CL OR (TJ1 AND TJ6=-1))),1,IF(REF(TJ6,1)<>-1 AND (SJE AND (CL2 OR (TJ2 AND TJ3=1))),-1,IF(JS,0,REF(TJ6,1)))));


DRAWICON(REF(TJ6,1)<>1 AND TJ6=1,L,4);
DRAWICON(REF(TJ6,1)<>-1 AND TJ6=-1,H,5);
DRAWTEXT(REF(TJ6,1)=0 AND TJ6=1,L,'      开多');
buy(TJ6,1)=0 AND TJ6=1,1,MARKET);

DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,'      开空');
buySHORT(,,);//参数自行填充。

DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,'      平空开多');
if REF(TJ6,1)=-1 AND TJ6=1 then begin
 SELLSHORT();
 buy(); 
end
DRAWTEXT(REF(TJ6,1)=1 AND TJ6=-1,H,'      平多开空');
if REF(TJ6,1)=1 AND TJ6=-1 then BEGIN
 sell();
 BUYSHORT(); 
end

DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,'      收盘平仓');
if TJ6,1)<>0 AND TJ6=0 then begin
 sell();
 SELLSHORT(); 
  
end

[此贴子已经被作者于2018/10/22 16:49:53编辑过]
3楼
FireScript 发表于:2018/10/22 16:53:05
在其中添加一些代码,其他地方没动,另外你前面还有个变量定义有问题TJ3,这个你自行处理了,不是代码语法问题了。
 DRAWTEXT(REF(TJ6,1)=0 AND TJ6=1,L,'      开多');
buy(holding=0 and REF(TJ6,1)=0 AND TJ6=1,1,market);

DRAWTEXT(REF(TJ6,1)=0 AND TJ6=-1,H,'      开空');
buyshort(holding=0 and REF(TJ6,1)=0 AND TJ6=-1,1,market);

DRAWTEXT(REF(TJ6,1)=-1 AND TJ6=1,L,'      平空开多');
if REF(TJ6,1)=-1 AND TJ6=1 then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);    
end

DRAWTEXT(REF(TJ6,1)=1 AND TJ6=-1,H,'      平多开空');
if REF(TJ6,1)=-1 AND TJ6=-1 then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);    
end

DRAWTEXT(REF(TJ6,1)<>0 AND TJ6=0,L,'      收盘平仓');
if time=CLOSETIME(0) then
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);    
end
4楼
lqf3618 发表于:2018/10/23 15:34:32
万分感谢wenarm高手指点!!!!!!
5楼
lqf3618 发表于:2018/10/23 15:35:19
万分感谢FireScript高手指点!!!!!
共5 条记录, 每页显示 10 条, 页签: [1]


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