以文本方式查看主题

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

--  作者:zyy2019
--  发布时间:2019/3/1 21:07:58
--  模型编写

尊敬的老师;

 

  我想请您帮我写几句程序。

如果持仓是空单,该合约在盘中上涨3%以上就平仓。同样如果持仓是多单,该合约在盘中下跌3%以上就平仓。

该怎么写?加在程序的那个地方。

 

提前感谢


--  作者:FireScript
--  发布时间:2019/3/4 9:28:05
--  
以空头为例,开仓后价格上涨最高达到3%平仓。
sellcond:hhv(h,ENTERBARS+1)>=ENTERPRICE*1.03;
if sellcond and holding<0 then sellshort(holding<0,holding,market);



--  作者:zyy2019
--  发布时间:2019/3/4 10:26:01
--  多头怎么写
麻烦老师告诉我多头怎么写。加在程序的那个地方。

新学金字塔,实在搞不懂!

--  作者:FireScript
--  发布时间:2019/3/4 10:33:38
--  
 1.放在开仓语句后面
多头的话:
sellcond2:llv(h,ENTERBARS+1)<=ENTERPRICE*0.97;
if sellcond and holding>0 then sell(holding>0,holding,market);
2.如果是新手的话,建议先学习下软件自带范例里面的代码。尝试修改那些范例练练手。

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

这个模块下有些范例的。

--  作者:zyy2019
--  发布时间:2019/3/4 15:30:40
--  加入报错
老师你好!
我把多头和空头语句加入后就报错。麻烦你加入下试试。


谢谢您了


if ((((HOLDING>0) and  (LOW<STOPPRICE)) and  (ENTERBARS>0))) then 
begin
SELL(1,ABS(HOLDING),LIMITR,MIN(OPEN,STOPPRICE));
BUYED:=0;
end
if ((((HOLDING<0) and  (HIGH>STOPPRICE)) and  (ENTERBARS>0))) then 
begin
SELLSHORT(1,ABS(HOLDING),LIMITR,MAX(OPEN,STOPPRICE));
SELLED:=0;
end
if ((((HOLDING>0) and  (ENTERBARS>0)) and  REF((CLOSE>=OPEN),1))) then 
begin
SELL((LOW<=RL2),ABS(HOLDING),LIMITR,MIN(OPEN,RL2));
BUYED:=0;
end
if ((((HOLDING<0) and  (ENTERBARS>0)) and  REF((CLOSE<=OPEN),1))) then 
begin
SELLSHORT((HIGH>=RH2),ABS(HOLDING),LIMITR,MAX(OPEN,RH2));
SELLED:=0;
end
if (((HOLDING=0) and  BUYCOND)) then 
begin
BUY(1,M,LIMITR,MAX(OPEN,RH1));
CHANGEPRICE:=HIGH;
STOPPRICE:=(MAX(OPEN,RH1)-(159*MINDIFF));
BUYPRICE:=MAX(OPEN,RH1);
BUYED:=1;
end
if (((HOLDING=0) and  SELLCOND)) then 
begin
BUYSHORT(1,M,LIMITR,MIN(OPEN,RL1));
CHANGEPRICE:=LOW;
STOPPRICE:=(MIN(OPEN,RL1)+(0*MINDIFF));
SELLPRICE:=MIN(OPEN,RL1);
SELLED:=1;
end
if (((HOLDING>0) and  (HIGH>CHANGEPRICE))) then 
begin
CHANGEPRICE:=HIGH;
if ((CHANGEPRICE>(BUYPRICE+(250*MINDIFF)))) then STOPPRICE:=(CHANGEPRICE-(0*MINDIFF));
end
if (((HOLDING<0) and  (LOW<CHANGEPRICE))) then 
begin
CHANGEPRICE:=LOW;
if ((CHANGEPRICE<(SELLPRICE-(309*MINDIFF)))) then STOPPRICE:=(CHANGEPRICE+(0*MINDIFF));
end


--  作者:FireScript
--  发布时间:2019/3/4 15:33:34
--  
 STOPPRICE是什么?这不是金字塔的函数啊。你上面的代码不完整吧。还有其他未定义的变量在里面。
[此贴子已经被作者于2019/3/4 15:34:40编辑过]

--  作者:zyy2019
--  发布时间:2019/3/4 20:11:18
--  加入
就请老师把多头和空头那两句加入就可以了。
--  作者:FireScript
--  发布时间:2019/3/5 9:06:47
--  
 2,4楼代码复制出来 放到你5楼代码后面。其他未定义的变量之类的只能你自行处理掉。
--  作者:zyy2019
--  发布时间:2019/3/5 19:46:35
--  加入句子
老师:

   你好!我这程序没有问题,我只想让您把多头和空头语句加入内。
谢谢