以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=162176)

--  作者:xuxu7890
--  发布时间:2018/3/19 14:14:28
--  你好 麻烦编写一个后台平仓公式

用图表来开仓   用后台来平仓   平仓思路: 以买多为例,持仓50手的时候,立刻在持仓价加2个价位挂20手卖单,在持仓价加3个价位挂15手卖单,在持仓价价加4点挂15手卖单  全部挂单挂完等待成交,如不成交或部分成交,在持仓价减去3个价位 全部撤挂单并市价平仓  谢谢


--  作者:FireScript
--  发布时间:2018/3/19 14:52:05
--  

GLOBALVARIABLE:mark:=0;
if THOLDING=50 then
BEGIN
tsell(1,20,LMT,TAVGENTERPRICE+2*MINDIFF);
tsell(1,15,LMT,TAVGENTERPRICE+3*MINDIFF);
tsell(1,15,LMT,TAVGENTERPRICE+4*MINDIFF);
end

KL:TSUBMIT(2 );//未成交单历时
if KL>N then //N自行设置值
begin
mark:=1;
TCANCELEX(1 ,2 ,\'\' ,\'\' );//执行撤单动作
end

if mark then
begin
tsell(tholding>0 and mark,tholding,MKT);//市价平仓
mark:=0;
end

 

 


--  作者:xuxu7890
--  发布时间:2018/3/19 15:30:34
--  

麻烦再修改一下  未成交或部分成交撤单再平仓问题  不是时间控制,是价格来控制,当价格掉头向下跌到成交价减三个价位时,未成交部分全部撤单并挂市价平掉  感谢


--  作者:FireScript
--  发布时间:2018/3/19 15:51:24
--  

稍微改下

 

GLOBALVARIABLE:mark:=0;
if THOLDING=50 then
BEGIN
tsell(1,20,LMT,TAVGENTERPRICE+2*MINDIFF);
tsell(1,15,LMT,TAVGENTERPRICE+3*MINDIFF);
tsell(1,15,LMT,TAVGENTERPRICE+4*MINDIFF);
end

KL:TSUBMIT(2 );//未成交单历时
if KL>0  and c<TENTERPRICE-3*MINUTE then //用未成交单历时间接判断是否有未成交委托
begin
mark:=1;
TCANCELEX(1 ,2 ,\'\' ,\'\' );//执行撤单动作
end

if mark then
begin
tsell(tholding>0 and mark,tholding,MKT);//市价平仓
mark:=0;
end

 

 

 

 


--  作者:xuxu7890
--  发布时间:2018/3/19 23:15:10
--  
可以直接使用吗??为什么我在预警里面加了品种 而实盘无任何挂单反应
--  作者:FireScript
--  发布时间:2018/3/20 8:43:26
--  
可以把后台的下单条件输出下,看看是否满足条件。简单加一个debugout就行了。
--  作者:FireScript
--  发布时间:2018/3/20 9:08:32
--  
我本地测试了也是有报单动作的。
--  作者:FireScript
--  发布时间:2018/3/20 9:21:44
--  

KL:TSUBMITex(2,\'\',\'\' );//未成交单历时

 

完善下这句。


--  作者:xuxu7890
--  发布时间:2018/3/20 13:46:47
--  
第一次有动作  自动挂单了,但是价格下降  只撤单 并没有市价平掉,  第二次满足情况时  没有挂单情况,只有平仓动作
--  作者:yukizzc
--  发布时间:2018/3/20 13:57:01
--  
if KL>0  and c<TENTERPRICE-3*MINUTE then //用未成交单历时间接判断是否有未成交委托
begin
mark:=1;
TCANCELEX(1 ,2 ,\'\' ,\'\' );//执行撤单动作
end

if tholding>0 and mark then
begin
tsell(1,tholding,MKT);//市价平仓
mark:=0;
end