以文本方式查看主题

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

--  作者:tsh624885646
--  发布时间:2019/3/29 11:59:13
--  文华转金字塔
麻烦大师帮我把这个公式改成金字塔的,使用if结构

文华代码如下

NNY:=**************
D:=********************
OOY:=*******************
LY:=******************
HY:=********************
H>=LY*1.04&&O<LY*1.04&&COUNTSIG(BK,NNY)<=3&&COUNTSIG(BK,D)<=0&&COUNTSIG(SK,D)<=0,BK;
L<=BKPRICE*0.98||L<=OOY*0.985&&BARSBK>=NNY||H>=BKPRICE*1.1||BKHIGH>=BKPRICE*1.015&&L<=BKPRICE+5*MINPRICE,SP;
L<=HY*0.96&&O>HY*0.96&&COUNTSIG(SK,NNY)<=3&&COUNTSIG(BK,D)<=0&&COUNTSIG(SK,D)<=0,SK;
H>=SKPRICE*1.02||H>=OOY*1.015&&BARSSK>=NNY||L<=SKPRICE*0.9||SKLOW<=SKPRICE*0.985&&H>=SKPRICE-5*MINPRICE,BP;
主要就把上方交易段落改成金字塔的 IF 结构 

--  作者:FireScript
--  发布时间:2019/3/29 14:23:29
--  
 COUNTSIG这个函数在金字塔上实现有些矛盾。这个代码我本地先尝试下。可能需要点时间,你关注本帖回复就行了。
--  作者:tsh624885646
--  发布时间:2019/3/29 14:29:56
--  
COUNTSIG  统计开仓的信号的次数



--  作者:tsh624885646
--  发布时间:2019/4/1 10:25:21
--  
等待中


--  作者:tsh624885646
--  发布时间:2019/4/1 14:55:51
--  
可以修改吗?等了三天了呀???
--  作者:FireScript
--  发布时间:2019/4/1 15:55:58
--  
ct1:=0;
ct2:=0;
kd:H>=LY*1.04 and O<LY*1.04 and  count(ct2=1 or ct1=0,D)<=0 and count(ct1=1,NNY)<=3;

if kd then
begin
buy(holding=0,1,market);
ct1:=1;    
end
BKHIGH:hhv(h,ENTERBARS+1);
pd:L<=ENTERPRICE*0.98 or L<=OOY*0.985 and  ENTERBARS+1>=NNY or H>=ENTERPRICE*1.1 or BKHIGH>=1.015*ENTERPRICE and L<=ENTERPRICE+5*MINDIFF;
if pd then sell(holding>0,holding,market);
kk:L<=HY*0.96 and O>HY*0.96 and count(ct2=1,NNY)<=3 and count(ct2=1 or ct1=0,D)<=0;//D周期内没有开多和开空,且NNY周期内开空不多于三次。
if kk then
begin
buyshort(holding=0,1,market);
ct2:=1;    
end
SKLOW:llv(l,ENTERBARS+1);
pk:H>=ENTERPRICE*1.02 or H>=OOY*1.015  and ENTERBARS+1>=NNY or L<=ENTERPRICE*0.9 or SKLOW<=ENTERPRICE*0.985 and H>=ENTERPRICE-5*MINDIFF;

里面有些变量的定义你没有给出,这个你自行完成下。

--  作者:tsh624885646
--  发布时间:2019/4/1 22:50:41
--  
加载进去了,但是没有交易???


--  作者:FireScript
--  发布时间:2019/4/2 8:27:36
--  
 完整代码提供下,不然我不好调试。
--  作者:tsh624885646
--  发布时间:2019/4/10 12:43:49
--  
完整的代码:

NNY:=BARSLAST(MONTH<>REF(MONTH,1))+1;
D:=BARSLAST(DATE<>REF(DATE,1))+1;
OOY:=VALUEWHEN(NNY=1&&D=1,O);
LY:=LLV(L,BARSLAST(MONTH<>REF(MONTH,1))+1);
HY:=HHV(H,BARSLAST(MONTH<>REF(MONTH,1))+1);
H>=LY*1.04&&O<LY*1.04&&COUNTSIG(BK,NNY)<=3&&COUNTSIG(BK,D)<=0&&COUNTSIG(SK,D)<=0,BK;
L<=BKPRICE*0.98||L<=OOY*0.985&&BARSBK>=NNY||H>=BKPRICE*1.1||BKHIGH>=BKPRICE*1.015&&L<=BKPRICE+5*MINPRICE,SP;
L<=HY*0.96&&O>HY*0.96&&COUNTSIG(SK,NNY)<=3&&COUNTSIG(BK,D)<=0&&COUNTSIG(SK,D)<=0,SK;
H>=SKPRICE*1.02||H>=OOY*1.015&&BARSSK>=NNY||L<=SKPRICE*0.9||SKLOW<=SKPRICE*0.985&&H>=SKPRICE-5*MINPRICE,BP;
TRADE_OTHER(\'AUTO\');
SETSIGPRICETYPE(BK,TRACING_ORDER);
SETSIGPRICETYPE(SK,TRACING_ORDER);
SETSIGPRICETYPE(BP,TRACING_ORDER);
SETSIGPRICETYPE(SP,TRACING_ORDER);
SETMODRUNTYPE(0);
SETMOVEOPIPRICE(LIMIT_ORDER);
AUTOFILTER;

--  作者:FireScript
--  发布时间:2019/4/10 14:56:57
--  
 NNY:BARSLAST(MONTH<>REF(MONTH,1))+1;
D:BARSLAST(DATE<>REF(DATE,1))+1;
OOY:=VALUEWHEN(NNY=1&&D=1,O);
LY:=LLV(L,BARSLAST(MONTH<>REF(MONTH,1))+1);
HY:=HHV(H,BARSLAST(MONTH<>REF(MONTH,1))+1);
ct1:=0;
ct2:=0;

kd:H>=LY*1.04 and O<LY*1.04 and  count(ct2=1 or ct1=1,D)<=0 and count(ct1=1,NNY)<=3;

if kd then
begin
buy(holding=0,1,market);
ct1:=1;    
end
BKHIGH:=hhv(h,ENTERBARS+1);
pd:L<=ENTERPRICE*0.98 or L<=OOY*0.985 and  ENTERBARS+1>=NNY or H>=ENTERPRICE*1.1 or BKHIGH>=1.015*ENTERPRICE and L<=ENTERPRICE+5*MINDIFF;
if pd then sell(holding>0,holding,market);
kk:L<=HY*0.96 and O>HY*0.96 and count(ct2=1,NNY)<=3 and count(ct2=1 or ct1=1,D)<=0;//D周期内没有开多和开空,且NNY周期内开空不多于三次。
if kk then
begin
buyshort(holding=0,1,market);
ct2:=1;    
end
SKLOW:=llv(l,ENTERBARS+1);
pk:=H>=ENTERPRICE*1.02 or H>=OOY*1.015  and ENTERBARS+1>=NNY or L<=ENTERPRICE*0.9 or SKLOW<=ENTERPRICE*0.985 and H>=ENTERPRICE-5*MINDIFF;

if pk then  sellshort(holding<0,holding,market);

现在看下呢。