以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [原创]  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=99639)

--  作者:splisun
--  发布时间:2016/6/27 11:29:51
--  [原创]
文华改写下金字塔,多谢。
//时间控制
A1:=TIME>=0905&&TIME<1010;
A2:=TIME>=1035&&TIME<1125;
B1:=TIME>=1335&&TIME<1455;
B2:=TIME>=2105&&TIME<2325;
TT:=A1 OR A2 OR B1 OR B2; 
//交易条件
DIFF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIFF,9);
CROSS(DIFF,DEA)&&COUNTSIG(BK,5)=0&&TT,BK;
CROSS(DEA,DIFF)&&COUNTSIG(SK,5)=0&&TT,SK;
//开仓后第3根止损3个最小变动价位,第4根止损2个最小变动价位,第5根K线平仓
A:=MINPRICE1;//最小变动价位
REFSIG_PLACE(BK,1)=3&&BKVOL>0&&C<=BKPRICE-3*A,SP;
REFSIG_PLACE(BK,1)=4&&BKVOL>0&&C<=BKPRICE-2*A,SP;
REFSIG_PLACE(BK,1)=5&&BKVOL>0,SP;
REFSIG_PLACE(SK,1)=3&&SKVOL>0&&C>=SKPRICE+3*A,BP;
REFSIG_PLACE(SK,1)=4&&SKVOL>0&&C>=SKPRICE+2*A,BP;
REFSIG_PLACE(SK,1)=5&&SKVOL>0,BP;
//止损部分
STOP(0,8);//赢利8个最小变动价位,多单止盈;
STOP(0,-4);//亏损4个最小变动价位,多单止损; 
STOP(4,4);//亏损4个最小变动价位,空单止损;
STOP(4,-8);//赢利8个最小变动价位,空单止盈;

MULTSIG(5,0,1,3);//出开信号第5个间隔下单,出平信号即下单,不复核,信号个数1,隔3秒计算一次
SETALLSIGPRICETYPE(LIMIT_ORDER);//该模型中所有信号以市价委托

TIME>=1013&&TIME<1014,CLOSEOUT;
TIME>=1128&&TIME<1129,CLOSEOUT;
TIME>=2328&&TIME<2329,CLOSEOUT;
CLOSEMINUTE1<=2,CLOSEOUT;//收盘前2分钟,清仓
TRADE_OTHER(\'AUTO\');
AUTOFILTER;
[此贴子已经被作者于2016-6-27 11:30:27编辑过]

--  作者:jinzhe
--  发布时间:2016/6/27 13:32:33
--  

REFSIG_PLACE(BK,1)

这句是什么意思?


--  作者:splisun
--  发布时间:2016/6/27 15:35:09
--  
REFSIG_PLACE(Sig,N) 判断从当根K线开始倒数第N个固定的Sig信号所在K线的位置。
用法:REFSIG_PLACE(Sig,N) 判断从当根K线开始倒数第N个固定的Sig信号所在K线的位置。如果没有Sig信号,或者没有固定的Sig信号,则该函数返回空值。
注:
1、Sig位置支持的信号有:BK,SK,BP,SP,BPK,SPK,CLOSEOUT
2、K线位置是指的这根K线距离当前K线的根数。
3、如果倒数第N个固定的Sig信号在当根K线上,那么该函数返回0。
4、N为0或空值时,该函数返回空值。
5、参数N支持变量。
例:
REFSIG_PLACE(BK,3)=5&&BKVOL>0,SP;//如果从当根K线开始倒数第3个固定的BK信号所在的距离当前K线有5根K线,并且多头持仓大于0,卖平仓
--  作者:jinzhe
--  发布时间:2016/6/27 15:44:29
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=99650

是不是一样的?


--  作者:splisun
--  发布时间:2016/6/27 15:48:43
--  
恩,是的,少了这部分
//开仓后第3根止损3个最小变动价位,第4根止损2个最小变动价位,第5根K线平仓
A:=MINPRICE1;//最小变动价位
REFSIG_PLACE(BK,1)=3&&BKVOL>0&&C<=BKPRICE-3*A,SP;
REFSIG_PLACE(BK,1)=4&&BKVOL>0&&C<=BKPRICE-2*A,SP;
REFSIG_PLACE(BK,1)=5&&BKVOL>0,SP;
REFSIG_PLACE(SK,1)=3&&SKVOL>0&&C>=SKPRICE+3*A,BP;
REFSIG_PLACE(SK,1)=4&&SKVOL>0&&C>=SKPRICE+2*A,BP;
REFSIG_PLACE(SK,1)=5&&SKVOL>0,BP;

--  作者:jinzhe
--  发布时间:2016/6/27 15:56:39
--  

加下面的几句:

 

if enterbars=3 and holding>0 and c<=enterprice-3*mindiff then sell(1,0,marektr);

if enterbars=4 and holding>0 and c<=enterprice-2*mindiff then sell(1,0,marketr);

if enterbars=5 and holding>0 then sell(1,0,marketr);

 

 

if enterbars=3 and holding<0 and c>=enterprice+3*mindiff then sellshort(1,0,marektr);

if enterbars=4 and holding<0 and c>=enterprice+2*mindiff then sellshort(1,0,marketr);

if enterbars=5 and holding<0 then sellshort(1,0,marketr);


--  作者:splisun
--  发布时间:2016/6/27 16:00:05
--  
多谢,有问题在请教。
--  作者:jinzhe
--  发布时间:2016/6/27 16:05:08
--  

--  作者:splisun
--  发布时间:2016/6/27 16:23:48
--  
放入后,通不过.
图片点击可在新窗口打开查看此主题相关图片如下:2016-06-27_162129.png
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2016/6/27 16:32:37
--  

if enterbars=3 and holding>0 and c<=enterprice-3*mindiff then sell(1,0,marketr);

if enterbars=4 and holding>0 and c<=enterprice-2*mindiff then sell(1,0,marketr);

if enterbars=5 and holding>0 then sell(1,0,marketr);

 

 

if enterbars=3 and holding<0 and c>=enterprice+3*mindiff then sellshort(1,0,marketr);

if enterbars=4 and holding<0 and c>=enterprice+2*mindiff then sellshort(1,0,marketr);

if enterbars=5 and holding<0 then sellshort(1,0,marketr);

 

 

有拼写错误,现在改了