以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]老师帮我把这个文华的转换成金字塔图表自动策略  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=96911)

--  作者:xhbsy007
--  发布时间:2016/4/30 10:38:00
--  [求助]老师帮我把这个文华的转换成金字塔图表自动策略

MAA:MA(CLOSE,10),COLORMAGENTA,LINETHICK2; 
N1:=BARSLAST(TIME=1030);
N2:=BARSLAST(TIME=0930);

HH:=REF(HHV(H,N2+1),N1);
LL:=REF(LLV(L,N2+1),N1); 
DRAWSL(1,HH,0,1,0,COLORMAGENTA);
DRAWSL(1,LL,0,1,0,RGB(0,128,192));

KKXJ:=(MAA-LL)<5;
KDXJ:=(HH-MAA)<5;

XZ:=COUNTSIG(BP,N2)+COUNTSIG(SP,N2)+COUNTSIG(CLOSEOUT,N2);
C>HH&&COUNTSIG(CLOSEOUT,N1)=0&&(TIME>1030||TIME<1430)&&KDXJ&&XZ=0&&(ISLASTBP||COUNTSIG(BK,N1)+COUNTSIG(SK,N1)=0),BK(手数);//

CROSSDOWN(C,MAA),SP(BKVOL);
CROSS(C,MAA),BP(SKVOL);

L<LL,SP(BKVOL);
C<LL&&COUNTSIG(CLOSEOUT,N1)=0&&(TIME>1030||TIME<1430)&&KKXJ&&XZ=0&&(ISLASTSP||COUNTSIG(SK,N1)+COUNTSIG(BK,N1)=0),SK(手数);//
H>HH,BP(SKVOL);

TIME=1500,CLOSEOUT;

CHECKSIG_MIN(BK,\'A\',0,\'D\',0);//出信号立即下单,K线走完复核
CHECKSIG_MIN(SK,\'A\',0,\'D\',0);//出信号立即下单,K线走完复核

CHECKSIG_MIN(SP,\'A\',0,\'C\',0);//出信号立即下单,不复核
CHECKSIG_MIN(BP,\'A\',0,\'C\',0);//出信号立即下单,不复核

CHECKSIG_MIN(CLOSEOUT,\'B\',0,\'D\',0);//K线走完确认信号下单

--  作者:xhbsy007
--  发布时间:2016/5/2 21:33:27
--  
老师帮我把这个文华的转换成金字塔图表自动策略
--  作者:jinzhe
--  发布时间:2016/5/3 9:34:52
--  

COUNTSIG

这个函数在文华里面是什么意思?


--  作者:xhbsy007
--  发布时间:2016/5/3 9:59:10
--  
COUNTSIG(X,N); 统计N周期内,X信号的数量;

用法:
X可以为BK、SK、SP、BP、SPK、BPK、CLOSEOUT、STOP

注:
1、统计周期时,
(1)包含当前k线; 
(2)若N为0则从第一个有效值算起;
(3)当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。
(4)N 为空值时返回值为空值 。
(5)N可以为变量
2、统计信号时:
(1)信号执行方式选择为K线走完确认信号或者K线走完复核(例如:在模型中写入CHECKSIG(SIG,\'A\',0,\'D\',0,0);),不包含当根K线上未固定的信号,即返回已经固定的信号个数
(2)信号执行方式选择为不进行信号复核(例如:在模型中写入MULTSIG或MULTSIG_MIN;),包含当根K线上信号发出并且固定后的信号

例:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
BKN:=COUNTSIG(BK,N);
MA5:=MA(C,5);
BKN=0&&C>MA5,BK;//当日内日未出现过BK信号并且最新价大于5周期均线,则买开仓

--  作者:jinzhe
--  发布时间:2016/5/3 10:20:37
--  

看不懂文华的思路

你把这句解释一下,解释一下要实现什么目的,不要直接翻译:

C>HH&&COUNTSIG(CLOSEOUT,N1)=0&&(TIME>1030||TIME<1430)&&KDXJ&&XZ=0&&(ISLASTBP||COUNTSIG(BK,N1)+COUNTSIG(SK,N1)=0),BK(手数);//

--  作者:xhbsy007
--  发布时间:2016/5/3 10:34:10
--  
开仓条件:价格大于HH线;

当日开仓时间:在10:30 与14:30 之间,

当开仓条件满足时,之前没有任何开平仓发生,(一天就开一次仓)

--  作者:jinzhe
--  发布时间:2016/5/3 10:50:01
--  

variable:n=0;
手数:=1;
MAA:=MA(CLOSE,10),COLORMAGENTA,LINETHICK2;
N1:=BARSLAST(TIME=103000);
N2:=BARSLAST(TIME=093500);


HH:REF(HHV(H,N2+1),N1);
LL:REF(LLV(L,N2+1),N1);

 

KKXJ:=(MAA-LL)<5;
KDXJ:=(HH-MAA)<5;

 

if C>HH and holding=0 and n=0 and  (TIME>103000 and TIME<143000) then begin
 buy(holding=0,手数,marketr);//
 n:=1;
end


if CROSS(MAA,c) then sell(1,0,marketr);
if CROSS(C,MAA) then sellshort(1,0,marketr);


if L<LL then sell(1,0,marketr);
if H>HH then sellshort(1,0,marketr);
if C<LL and holding=0 and n=0 and (TIME>103000 and TIME<143000) then begin
 buyshort(holding=0,手数,marketr);//
 n:=1;
end

 

if TIME=150000 then begin
 sell(1,0,marketr);
 sellshort(1,0,marketr);
 n:=0;
end


 


--  作者:xhbsy007
--  发布时间:2016/5/3 12:24:03
--  
CHECKSIG_MIN(BK,\'A\',0,\'D\',0);//出信号立即下单,K线走完复核
CHECKSIG_MIN(SK,\'A\',0,\'D\',0);//出信号立即下单,K线走完复核


老师:开仓部分,实现不了吗?  

比如:上穿触发成交了,1k棒走完,价格回到HH线下方了,开多条件不成立了。。这时候应该平掉刚才开的多单

--  作者:jinzhe
--  发布时间:2016/5/3 13:20:48
--  
 
你讲的是:同步持仓模式
 
 
 

--  作者:xhbsy007
--  发布时间:2016/5/3 13:22:35
--  
这么设定就可以了吗
图片点击可在新窗口打开查看此主题相关图片如下:截图01.jpg
图片点击可在新窗口打开查看