以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  分时图交易策略  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=170467)

--  作者:assddzz11
--  发布时间:2019/6/14 18:24:25
--  分时图交易策略
分时均线上开多
每盈利5个点平仓3分之1
每盈利10个点平仓3分之1
每盈利20个点平仓3分之1
如果分时均线向下击穿全部平仓,
分时均线下开空
每盈利5个点平仓3分之1
每盈利10个点平仓3分之1
每盈利20个点平仓3分之1
如果分时均线出现向上击穿,全部平仓
每天收盘全部平仓

--  作者:wenarm
--  发布时间:2019/6/17 9:51:59
--  
你说的平掉三分之一,是指剩余的三分之一?还是什么?
--  作者:assddzz11
--  发布时间:2019/6/17 10:26:34
--  
分三次平仓
比如总建仓9手  先平3手 再3手  3手的平仓

--  作者:FireScript
--  发布时间:2019/6/17 11:22:45
--  
 1.先处理下分时均线

n1:=todaybar;

dm:=4-INTPART(LOG(C));

结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;

不过这个无法完全等效系统自带的分时均线,但大体上是贴近的。

2.上下穿用cross函数

3.分段平仓。多头为例。

if c-enterprice>=5 and holding>0 then begin
sell(holding>0,holding/3,market);
end

if c-enterprice>=10 and holding<0 then begin
sell(holding>0,holding/2,market);
end

if c-enterprice>=20 and holding<0 then begin
sell(holding>0,holding,market);
end


具体编写细节你可以先自行尝试下。


--  作者:assddzz11
--  发布时间:2019/6/17 23:34:06
--  帮我修改下
//分时线数据 

n1:=todaybar;

dm:=4-INTPART(LOG(C));

结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;





KD:=CROSS( C,结算价 );          //开多条件
if c-enterprice>=5 and holding>0 then begin
sell(holding>0,holding/3,market);
end

if c-enterprice>=10 and holding<0 then begin
sell(holding>0,holding/2,market);
end

if c-enterprice>=20 and holding<0 then begin
sell(holding>0,holding,market);
end;          //平多条件
KK:=CROSS( 结算价,C );          //开空条件
if c-enterprice>=-5 and holding>0 then begin
sell(holding>0,holding/3,market);
end

if c-enterprice=-10 and holding<0 then begin
sell(holding>0,holding/2,market);
end

if c-enterprice>=-20 and holding<0 then begin
sell(holding>0,holding,market);
end;          //平空条件

PK:=CROSS( 结算价,C );
PD:=CROSS( C,结算价 ); 

平空:SELLSHORT(PK,9,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,9,THISCLOSE);          //开多信号
平多:SELL(PD,9,THISCLOSE);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,9,THISCLOSE);     //开空信号


帮我修改下,平仓都是一次性平仓的,改成分批平仓的

--  作者:FireScript
--  发布时间:2019/6/18 9:32:21
--  
c-enterprice>=-20 你这个是要表达空头盈利20个点?
你改下吧。
enterprice-c>=20
然后就是你相应的语句请改成平空语句,sell是平多 sellshort是平空。

除去上面的问题外,就是你这个思路本身也有特殊情况,期货价格变化不是连续的。如果直接跳到20点以上,自然就会直接全平的了。

--  作者:assddzz11
--  发布时间:2019/6/19 15:47:55
--  
还有一个就是   当天收盘前清仓,不留仓过夜,当天持仓当天卖完   怎么加上去
--  作者:FireScript
--  发布时间:2019/6/19 15:53:51
--  
 
加个这样的语句就行了。 if time=closetime(0) then  sell(1,holding,market);  这是平多的。平空的也是一样的。