以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 请问如何动态加仓? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=167315) |
-- 作者:abc911 -- 发布时间:2018/12/25 0:40:35 -- 请问如何动态加仓? ss:=1; //手数 KD:=cross(c1,c2) ; //开多条件 PD:=cross(c2,c1) ; //平多条件 KK:=cross(c2,c1) ; //开空条件 PK:=cross(c1,c2) ; //平空条件 平空:SELLSHORT(PK,ss,THISCLOSE); //平空信号 开多:BUY(KD AND HOLDING=0,ss,THISCLOSE); //开多信号 平多:SELL(PD,ss,THISCLOSE); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,ss,THISCLOSE); //开空信号 请问如何达到如下结果: (1)当手数=1手时,盈利不加仓,亏损后加1次仓,每次加1手,最多加到3手, 即底仓1手,亏1次加到2手,亏2次加到3手,亏3次以上都是3手,盈利后跑回底仓1手。 (2)当手数=2手时,盈利不加仓,亏损后加1次仓,每次加2手,最多加到6手, 即底仓2手,亏1次加到4手,亏2次加到6手,亏3次以上都是6手,盈利后跑回底仓2手。 (3)当手数=3手时,盈利不加仓,亏损后加1次仓,每次加3手,最多加到9手, 即底仓3手,亏1次加到6手,亏2次加到9手,亏3次以上都是9手,盈利后跑回底仓3手。 (4)当手数=4手时,盈利不加仓,亏损后加1次仓,每次加4手,最多加到12手, 即底仓4手,亏1次加到8手,亏2次加到12手,亏3次以上都是12手,盈利后跑回底仓4手。 (5)当手数=5手时,盈利不加仓,亏损后加1次仓,每次加5手,最多加到15手, 即底仓5手,亏1次加到10手,亏2次加到15手,亏3次以上都是15手,盈利后跑回底仓5手。 (6)(7)(8)……以此类推。 |
-- 作者:wenarm -- 发布时间:2018/12/25 9:32:09 -- 参考下面代码实现方式。 ma5:=ma(close,5); cond1:=cross(ma5,ma10); if cond2 and holding>0 then begin |
-- 作者:abc911 -- 发布时间:2018/12/25 11:05:05 -- variable:lossnum=0;// 全局变量,平仓时判断一下是盈利/亏损,若亏损lossnum就加1
////////////////////多单交易 if cond2 and holding>0 then// 平多 begin
////////////////////空单交易 if cond4 and holding>0 then// 平空 begin
帮忙看看是那里不对呢? |
-- 作者:wenarm -- 发布时间:2018/12/25 11:23:28 -- 你多空盈亏是希望一起计算的? 你先理解下我给你的代码,如果修改后也应该是您直接说明什么地方不满足你的思想。 |
-- 作者:abc911 -- 发布时间:2018/12/25 12:31:22 -- 开多条件,平多条件,开空条件,平空条件,都不一样的。 是多空一起计算盈亏次数,谢谢。 |
-- 作者:wenarm -- 发布时间:2018/12/25 13:17:56 -- 怎么不对的,说清楚些。 上面的逻辑中,盈利后,手数会被重置为初始手数 |
-- 作者:abc911 -- 发布时间:2018/12/25 15:26:00 -- 发不了图片,按以下写法,K线图上显示全部是做空的单子,麻烦看看那里写得不对,谢谢。
|
-- 作者:yukizzc -- 发布时间:2018/12/25 16:35:28 -- 有开多信号的,用这种方式看下当条件满足时候,图表不支持锁仓,如果有空仓情况下是不能开多的,全部按照反手来处理 cc:cond1; if cond1 then begin sellshort(1,holding,marketr); buy(1,jcss,MARKET);// 开多 end |