以文本方式查看主题

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

--  作者:qq代人发帖
--  发布时间:2020/1/6 16:35:50
--  收盘前平今仓,如何写代码?
请教:收盘前平今仓,如何写代码?
--  作者:wenarm
--  发布时间:2020/1/6 16:46:10
--  

收盘前x分钟平仓(分钟级别)
    M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
    M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟
    
    if T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) or (time=190000 and not(ISLASTBAR)) then begin
        sell(1,holding,MARKET);
        sellshort(1,holding,MARKET);
    end
说明:提前的时间必须在最后一根k的范围内。否则采用(*time < xxxx  and time > xxxx*)的方式进行控制  
 
收盘前x分钟平仓(日线级别)

    M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
    M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟
    
    if T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) or (not(ISLASTBAR)) then begin
        sell(1,holding,MARKET);
        sellshort(1,holding,MARKET);
    end

[此贴子已经被作者于2020/1/6 16:46:57编辑过]

--  作者:FireScript
--  发布时间:2020/1/6 16:48:49
--  
1.收盘前平仓 。这个需要用时间函数处理,即在指定的收盘之前的某个时间平仓。但是需要根据当前周期不同做修改。以1分钟为例
if  time=185800 then sell(holding>0,holding,market);//1分钟周期上在14:58分平仓

你可以把你的这个需求说得更具体点。

2.一般默认是优先平今仓的。图表模型的代码上无法直接指定只平今仓的。后台得话可以读取今仓数量,按照这个数量去平。