以文本方式查看主题

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

--  作者:小白在线
--  发布时间:2021/4/6 21:17:11
--  麻烦帮我看一下怎么修改公式
思路是M1和M3是两条均线,5天和10天,两线相交就开多单或空单,有一个止盈止损,就是成交量相对大的话就先平仓,观看,
这里有个问题:
比如现在这条K线的成交量符合条件,能不能过一条K线再平仓,如图,就是直接在当条K线就平了,最好就是在下一条K线再平仓,公式要怎么写?或者是两条k线也行



//开多单条件
dd:=cross(m1,m3);
IF dd THEN
begin
sellshort(holding<0,0,limitr,c);
buy(holding=0,1,limitr,c);
END;
//止盈止损条件
ccc:=ref(hhv(vol,40),1);
ll:=ccc*0.8<=vol;
if ll then 
BEGIN
sell( holding>0,0,LIMITR,c);
sellshort(holding<0,0,limitr,c);//成交量较大就平仓
end;

//开空单条件
kk:=cross(m3,m1);
if kk THEN
begin 
sell(holding>0,0,limitr,c);
buyshort(holding=0,1,limitr,c);
END ;

--  作者:FireScript
--  发布时间:2021/4/7 9:02:21
--  
 这里改下就行了。用ref回溯到上一个K,如果上一个K满足当前K就出信号。
if ref(ll,1) then 
BEGIN
sell( holding>0,0,LIMITR,c);
sellshort(holding<0,0,limitr,c);//成交量较大就平仓
end;

另外就是实际交易时候你如果是走完K,其实就用ll也行。因为走完K 就是当前K走完了,次根K刚开始时候直接下单。
虽然信号是显示在上一个K,实际下单时机是在当前K开始时候。