Rss & SiteMap

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

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

标题:请高手帮忙完善一下程序漏洞

1楼
yuhang 发表于:2013/4/18 12:37:41
应用于10分钟线下的一个策略:

INPUT:M(26,5,500,30);
INPUT:N(2,0.1,10,1);
INPUT:X(0.2,0.2,10,0.2);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);
多:=ALL(C>O+15*X,2) AND ALL(O>MID,2);

if 多 then begin
 sellshort(holding<0, 0, thisclose);
 buy(holding=0 {AND TIME<144000}, 1, thisclose);
 end
HH:=HHV(H,BARSLAST(HOLDING<=0));
多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0;
多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0;
多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0;
if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose);


今天盘面发生了一个情况:买入信号和卖出信号同时出现在一个K线上,但模拟账户只是按照买入信号开仓,却没有按照卖出信号平仓! 如图:
此主题相关图片如下:2013.4.18.jpg
按此在新窗口浏览图片

烦请帮忙修改程序来解决上述问题,当同时出现买入卖出信号时,或者不执行、或者买入后迅速卖出。
【注】有关程序化交易中的固定轮询模式和走完K线模式的说明没看懂,是否是上述情况的解决方法之一??

2楼
just 发表于:2013/4/18 14:38:16



INPUT:M(26,5,500,30);
INPUT:N(2,0.1,10,1);
INPUT:X(0.2,0.2,10,0.2);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);
HH:=HHV(H,BARSLAST(HOLDING<=0));
多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0;
多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0;
多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0;
if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose);
多:=ALL(C>O+15*X,2) AND ALL(O>MID,2);

if 多 then begin
 sellshort(holding<0, 0, thisclose);
 buy(holding=0 {AND TIME<144000}, 1, thisclose);
 end

图表注意先平后开原则
3楼
yuhang 发表于:2013/4/18 18:27:56
还有一种情况是 先开多买入信号,然后平多卖出信号和开空买入信号重叠一起,又该如何解决呢?图片点击可在新窗口打开查看
4楼
yuhang 发表于:2013/4/18 18:37:52


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

这里的平多卖出信号和开空买入信号重叠,该如何编辑程序呢?? 谢谢!

[此贴子已经被作者于2013-4-18 18:38:43编辑过]
5楼
yuhang 发表于:2013/4/19 6:12:45
INPUT:M(26,5,500,30);
INPUT:N(2,0.1,10,1);
INPUT:X(0.2,0.2,10,0.2);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);
HH:=HHV(H,BARSLAST(HOLDING<=0));
多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0;
多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0;
多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0;
if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose);
多:=ALL(C>O+15*X,2) AND ALL(O>MID,2);

if 多 then begin
 sellshort(holding<0, 0, thisclose);
 buy(holding=0 {AND TIME<144000}, 1, thisclose);
 end
 
LL:=LLV(L,BARSLAST(HOLDING>=0));
空止损1:LL>Enterprice*0.995 AND C>=LL*1.005 ,LINETHICK0;
空止损2:Enterprice*0.97<=LL AND LL<=Enterprice*0.995 AND C>=Enterprice ,LINETHICK0;
空止损3:TIME>150900 AND C>=Enterprice*0.99 ,LINETHICK0;
if 空止损1 OR 空止损2 OR 空止损3 then sellshort(holding<0, 0, thisclose);
空:=ALL(C<=O-15*X,2) AND ALL(O<=MID,2);

if 空 then begin
 sell(holding>0, 0, thisclose);
 buyshort(holding=0 AND TIME<150100, 1, thisclose);
 end


在这个程序里,当出现一根K线上又有平多信号又有开空信号时应该如何操作? 谢谢!
[此贴子已经被作者于2013-4-19 6:14:09编辑过]
6楼
yuhang 发表于:2013/4/19 8:10:27
继续漏洞问题: 程序如何修改可以做到-----
当在1个K线出现先买入后卖出信号,则此时不开仓, 当同一个K线出现先卖出后买入,则两个命令都执行
7楼
jinzhe 发表于:2013/4/19 9:31:00
if 空 then begin
 sell(holding>0, 0, thisclose);
 buyshort(holding=0 AND TIME<150100, 1, thisclose);
 end
 
一根k线又有平多又有开空是因为这几句代码
8楼
yuhang 发表于:2013/4/19 10:14:14
不是因为这个代码,举例来说:原来是买入开多情况下, K线出现信号,而该信号即满足平仓多单,又满足买入开空的指标,因此出现“先卖出多单后买入空单
9楼
jinzhe 发表于:2013/4/19 10:19:16
就是因为这个反手代码,如果不是很理解,可以先进行金字塔编程代码的学习
10楼
yuhang 发表于:2013/4/19 11:41:25
最后一个问题,请问如何给上面的代码加一个功能,就是当出现买入卖出信号时,都发送一份邮件到指定的邮箱里?
共11 条记录, 每页显示 10 条, 页签: [1] [2]


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