Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请老师帮忙改进模型

1楼
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;

2楼
jinzhe 发表于:2013/6/6 11:16:06
处理中,预计下午给出结果,请稍等
3楼
ailegrasper 发表于:2013/6/6 11:26:50

非常感谢!

4楼
jinzhe 发表于:2013/6/6 14:10:55

你这个是思路问题吧,

H>line

l<line

这两个条件同时满足了,所以才在一根k线上同时做了双向操作

反过来写就不会了

h<line

l>line

5楼
ailegrasper 发表于:2013/6/6 15:22:04

如果这样改就变成反向做单了,根本来的买卖相反,而且还是会有那个现象。我的本意是碰到sar信号就做一次反手。

6楼
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编辑过]
7楼
ailegrasper 发表于:2013/6/6 16:38:57
感谢老师,问题解决了,另外如果用marketr的话,实盘中是否会按信号时的市价操作?还是按收盘价?  如果想设合约价格回落n%作止损应该怎样写?谢谢指教!
8楼
jinzhe 发表于:2013/6/6 16:46:17

当前信号也就是发出信号时的市价操作

回落止损参考这个范例
图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.08203 s, 3 queries.