-- 作者:ailegrasper
-- 发布时间:2013/6/6 11:03:37
-- 请老师帮忙改进模型
想写一个根据sar操作的模型,sar大家都知道显示为两类移动止损点,一种是空头一种是多头(在文华里面空头移动止损点显示为绿色,多头为红色) 操作意愿是 1,账户空仓时,当指定周期某根k线最高点超过空头移动止损点就做多,或k线最低点低于多头移动止损点做空。 2,账户持有多单时,当k线最低点低于多头移动止损点时平多开空。 3,账户持有空单时,k线最高点超过空头移动止损点时平空翻多。
现在模型出现的问题是,系统将sar两类移动止损点看成是一种,所以当某根k线最高点超过sar和最低点低于sar都发生时,会出现开多平空和平多开空同时操作。(如图) 请老师帮忙看看系统应该怎样写好,不胜感激。
此主题相关图片如下:0gghhhre.jpg

以下是程序
开始:SAR(P,STEP,MAXP),CIRCLEDOT; h1:h;
h2:l; SARLINE:ABS(SAR(P,STEP,MAXP));//定义SARLINE 手数:=ss;
kdpk:=H>SARLINE;//开多平空条件 kkpd:=l<SARLINE;//开空平多条件
//交易系统 if kdpk then begin sellshort(holding<0,holding,MARKET); buy(holding=0,ss,MARKET); end
if kkpd then begin sell(holding>0,holding,MARKET); buyshort(holding=0,ss,MARKET); end
当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;
|
-- 作者:jinzhe
-- 发布时间:2013/6/6 15:35:18
--
if kdpk then begin sellshort(holding<0,holding,MARKET); buy(holding=0,ss,MARKET); end
if kkpd then begin sell(holding>0,holding,MARKET); buyshort(holding=0,ss,MARKET); end
改写成
if kdpk then begin sellshort(holding<0 and enterbars>0,holding,MARKET); buy(holding=0 ,ss,MARKET); end
if kkpd then begin sell(holding>0 and enterbars>0,holding,MARKET); buyshort(holding=0,ss,MARKET); end
加了enterbars判断之后,能不在同根k线上做多次平仓
[此贴子已经被作者于2013-6-6 15:35:39编辑过]
|