以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 帮修正一下软件限制开关 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=147821) |
|
-- 作者:XXL -- 发布时间:2017/2/16 11:04:52 -- 帮修正一下软件限制开关 帮修正一下这个日内限制 因为仓位管理有分形,不能在IF语句中开平仓 要求是这样的:日内只允许一次上穿或下穿开平仓,但是在上方及下方可以开平仓多次 当上穿开多仓后,如果行情回到下方,那平能平多仓,但能平空仓,如果再回到上方多空不限 当下穿开空仓后,如果行情回到上方,那平能平空仓,但能平多仓,如果再回到下方多空不限 下面是精减过的调式代码 ma1:ma(c,100); KDD:=close>ma1; //开多条件 PDD:=ma1>close; //平多条件 KKD:=ma1>close; //开空条件 PKD:=close>ma1; //平空条件 //------------------软件限制开关开始----------- variable:n1:=1; variable:n2:=1; //正关 if n1=1 and KDD and holding=0 then begin //怎么知道开过仓? // buy(1,1,marketr); 因为开平仓部门有仓位分形,没有办法在这里开平仓 n1:=0; //平多,开空无效 end //负关 if n2=1 and KKD and holding=0 then begin // buy(1,1,marketr); 因为开平仓部门有仓位分形,没有办法在这里开平仓 KDD:=0; n2:=0; //平空,开多无效 end if time=closetime(0) then n1:=1; if time=closetime(0) then n2:=1; IF n1=0 and C<ma1 THEN PDD:=0; //当开过一次多仓时,价格回到低位也不允许平多仓 IF n2=0 and C>ma1 THEN PKD:=0; //当开过一次空仓时,价格回到高位也不允许平空仓 //--------------软件限制开关结束---------得到的标志可以放在后面加以限制----------------- KD:=KDD ; //开多条件 PD:=PDD and n1; //平多条件 KK:=KKD and n2; //开空条件 PK:=PKD ;//and n1; //平空条件 平空:SELLSHORT(PK,1,THISCLOSE); //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号 平多:SELL(PD,1,THISCLOSE); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号 |
|
-- 作者:jinzhe -- 发布时间:2017/2/16 11:18:33 -- 当上穿开多仓后,如果行情回到下方,那平能平多仓,但能平空仓,如果再回到上方多空不限 这句要表达什么意思? |
|
-- 作者:XXL -- 发布时间:2017/2/16 11:33:41 -- 就是防止来回的打仓,在那个均线上方,不限制,要是上了均线开多后,又下来,就是杠仓了 相当于这样,PD:=PDD and C<ma1 AND 今天开的仓就不能平仓,但是昨天的单可以平 (如果C>ma1那平仓有效); //平多条件 ; 这有一个不会做的标志,那个开关用N可以,但是开仓标志不行,因为下面有可能开仓许可但是他并没有开仓,因为这个标志只有开过仓才有效,想在IF里不停的置,当有效开仓后就没有加法进IF里置1,但是写不出来 |
|
-- 作者:XXL -- 发布时间:2017/2/16 11:48:44 -- 这里面有一个问题,是我上方的开仓请求,下面这开平仓处理不一定会执行,因为开平仓中还有很多限制 我上面没有写更多的如下(这个当日只限一次的开仓限制只是其中的一个限制) 开多:BUY(KD and 时间 AND 开仓数量 AND 限制开仓 AND 限制开仓2 AND HOLDING=0,1,THISCLOSE); //开多信号 平多:SELL(PD and 时间 AND 开仓数量 AND 限制平仓 AND 限制平仓2,1,THISCLOSE); //平多信号
|
|
-- 作者:XXL -- 发布时间:2017/2/16 11:54:14 -- Post By:2017-2-16 11:18:33 Post IP:180.173.193.42[只看该作者]
|
|
-- 作者:jinzhe -- 发布时间:2017/2/16 13:13:35 -- 以下是引用jinzhe在2017-2-16 11:18:33的发言:
当上穿开多仓后,如果行情回到下方,那平能平多仓,但能平空仓,如果再回到上方多空不限 这句要表达什么意思? ”那平能平多仓,但能平空仓” 我的意思是上面那段话里面的这句话,不知道讲什么意思, |
|
-- 作者:XXL -- 发布时间:2017/2/16 14:38:16 -- 你只要一个标志就行,如允许平仓,允可平仓:=1;这样就会有程序去执行 |
|
-- 作者:XXL -- 发布时间:2017/2/16 14:40:31 -- 你再回到问题的原点,只要不要在IF里面开平仓,而把可以开平仓用标志标上,我在后面会有程序去执行开平仓的就可以了 要求是这样的:日内只允许一次上穿或下穿开平仓,但是在上方及下方可以开平仓多次 当上穿开多仓后,如果行情回到下方,那平能平多仓,但能平空仓,如果再回到上方多空不限 当下穿开空仓后,如果行情回到上方,那平能平空仓,但能平多仓,如果再回到下方多空不限 //------------------------------------ Post By:2017-2-16 11:48:44 Post IP:121.13.65.239[只看该作者]
|
|
-- 作者:jinzhe -- 发布时间:2017/2/16 14:45:26 -- 以下是引用jinzhe在2017-2-16 13:13:35的发言:
”那平能平多仓,但能平空仓” 我的意思是上面那段话里面的这句话,不知道讲什么意思, 所以, 你能不能解释一下这句话,好让我知道你想要干什么? |
|
-- 作者:XXL -- 发布时间:2017/2/16 14:50:02 -- 我就是有两个标志,一个是允许平多一个不允许 [此贴子已经被作者于2017-2-16 14:51:07编辑过]
|