以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请把文化8的模型转为金字塔可用  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173910)

--  作者:tmzqh
--  发布时间:2020/1/9 19:42:53
--  请把文化8的模型转为金字塔可用

//该示范主要用海龟交易法则,演示“头寸计算,最大仓位控制等资金管理”的编写方法
//编写示范中,只对示范重点内容语句进行了注释,其他语句请自行翻译,或者咨询文华工作人员
//该模型仅仅用来示范演示使用,依此入市,风险自负。

TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真实波幅
ATR:=MA(TR,26); //求26个周期内真实波幅的简单移动平均
TC..INTPART((MONEYTOT*0.01/(UNIT*ATR)));//根据权益的1%计算下单手数
MTC..4*TC; //总的持仓头寸
HH:=HV(H,20);
LL:=LV(L,20);
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(TC);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手
C>=BKPRICE+0.5*ATR&&BKVOL<MTC&&ISLASTBK,BK(TC);//价格在上次开仓的基础上上涨0.5倍ATR,在手数不超过4倍TC的时候,买入加仓TC手
C<=SKPRICE-0.5*ATR&&SKVOL<MTC&&ISLASTSK,SK(TC);//价格在上次开仓的基础上下跌0.5倍ATR,在手数不超过4倍TC的时候,卖出加仓TC手
C<=(BKPRICE-2*ATR)&&BKVOL>0,SP(BKVOL);//最新价小于开仓价减去2倍的ATR,止损平仓
C>=(SKPRICE+2*ATR)&&SKVOL>0,BP(SKVOL); //最新价大于开仓价加上2倍的ATR,止损平仓
CROSSUP(H,HV(H,10))&&SKVOL>0,BP(SKVOL);//最高价上穿10周期最高价,平仓
CROSSDOWN(L,LV(L,10))&&BKVOL>0,SP(BKVOL); //最低价下穿10周期的最低价,平仓
TRADE_AGAIN(10);
CHECKSIG(BK,\'B\',25,\'C\',0,0);//出现信号收盘前25秒下单,不复核

CHECKSIG(SK,\'B\',25,\'C\',0,0);//出现信号收盘前25秒下单,不复核
CHECKSIG(BP,\'B\',25,\'C\',0,0);
CHECKSIG(SP,\'B\',25,\'C\',0,0);
SETSIGPRICETYPE(SK,TRACING_ORDER);//自动连续追价
SETSIGPRICETYPE(BK,TRACING_ORDER);
SETSIGPRICETYPE(SP,TRACING_ORDER);
SETSIGPRICETYPE(BP,TRACING_ORDER);


--  作者:FireScript
--  发布时间:2020/1/10 10:13:45
--  
 
TR_:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真实波幅
ATR:=MA(TR_,26); //求26个周期内真实波幅的简单移动平均
TC:INTPART((ASSET*0.01/(MINDIFF*ATR))),NODRAW;//根据权益的1%计算下单手数
MTC:HOLDING,NODRAW; //总的持仓头寸
HH:=REF(HHV(H,20),1);
LL:=REF(LLV(L,20),1);
IF CROSS(HH,C)  and  BARPOS>=26 then buy(holding=0,TC,MARKET);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
IF CROSS(LL,c)  then buyshort(holding=0,TC,market); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手

IF C>=ENTERPRICE+0.5*ATR and HOLDING<MTC and HOLDING>0 THEN  buy(holding>0,TC,MARKET);//价格在上次开仓的基础上上涨0.5倍ATR,在手数不超过4倍TC的时候,买入加仓TC手
IF C<=ENTERPRICE-0.5*ATR and HOLDING<MTC and HOLDING<0 THEN buyshort(holding<0,TC,market);//价格在上次开仓的基础上下跌0.5倍ATR,在手数不超过4倍TC的时候,卖出加仓TC手

IF C<=(ENTERPRICE-2*ATR) AND HOLDING>0 THEN SELL(1,HOLDING,MARKET);//最新价小于开仓价减去2倍的ATR,止损平仓
IF C>=(ENTERPRICE+2*ATR) AND HOLDING<0 THEN SELLSHORT(1,HOLDING,MARKET); //最新价大于开仓价加上2倍的ATR,止损平仓
IF CROSS(h,REF(HHV(H,10),1)) AND HOLDING<0 THEN SELLSHORT(1,HOLDING,MARKET);//最高价上穿10周期最高价,平仓
IF CROSS(REF(LLV(L,10),1),L) AND HOLDING>0 THEN SELL(1,HOLDING,MARKET); //最低价下穿10周期的最低价,平仓


--  作者:FireScript
--  发布时间:2020/1/10 10:15:03
--  
因软件本身存在一定差异。以上代码在金字塔中使用的和原软件效果有差异地方,可以跟帖指出下,工作人员可以尝试继续修正和更改。
[此贴子已经被作者于2020/1/13 9:31:40编辑过]

--  作者:tmzqh
--  发布时间:2020/1/10 18:25:49
--  

请问,金字塔没有提前多少秒交易吗?

 


--  作者:wenarm
--  发布时间:2020/1/11 20:36:05
--  
标准版中可以使用提前下单功能。
--  作者:fly
--  发布时间:2020/1/13 9:23:56
--  
金字塔里,有提前多少秒交易的功能的,您用标准版,在“交易-图表程序化交易”下,具体操作参见下图。

图片点击可在新窗口打开查看此主题相关图片如下:提前下单.png
图片点击可在新窗口打开查看