以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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.如果是新手的话,建议先学习下软件自带范例里面的代码。尝试修改那些范例练练手。 这个模块下有些范例的。
|
-- 作者: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 -- 加入句子 老师: 你好!我这程序没有问题,我只想让您把多头和空头语句加入内。 谢谢
|