以文本方式查看主题

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

--  作者:COMBOY
--  发布时间:2015/7/23 9:53:55
--  大佬帮我

大佬帮我,思路是设置一条均线,触及均线开仓,n个点即止盈或止损,采用固定轮询模式,下面的如何优化?如何最大限度减少滑点?

 

 

 

input:n(10,1,100,1);//盈利止损点数
input:m(2,2,60,1);//均线周期

ma5:ma(close,m);
if cross(c,ma5) and time>091500 and time<151300 and holding=0 then buy(1,1,limitr,ma5),IGNORECHECKPRICE;
if cross(ma5,c) and time>091500 and time<151300 and holding=0 then buyshort(1,1,limitr,ma5),IGNORECHECKPRICE;
if holding<0 and enterprice-l>=mindiff*n then sellshort(1,1,limitr,enterprice-mindiff*n),IGNORECHECKPRICE;
if holding>0 and enterprice-h<=mindiff*n then sell(1,1,limitr,enterprice+mindiff*n),IGNORECHECKPRICE ;

 

//止损模块
多头损失点数:=c-enterprice;
空头损失点数:=enterprice-c;
if 空头损失点数<0 and abs(空头损失点数)>2*mindiff*n and holding<0 and enterbars>1 then 空头止损:sellshort(1,0,marketr),IGNORECHECKPRICE;
if 多头损失点数<0 and abs(多头损失点数)>2*mindiff*n and holding>0 and enterbars>1 then 多头止损:sell(1,0,marketr),IGNORECHECKPRICE;
止损点数:abs(多头损失点数);

//收盘前清仓
if time>=151400 then
begin
sellshort(holding<0,0,thisclose);
sell(holding>0,0,thisclose);
end

持仓:holding,linethick0;
资产:asset,noaxis,linethick2,coloryellow;
可用现金:cash(0),linethick0;

 

[此贴子已经被作者于2015/7/23 9:55:16编辑过]

--  作者:COMBOY
--  发布时间:2015/7/23 9:57:41
--  

这样是否可以?

 

input:n(7,1,100,1);//盈利止损点数
input:m(2,2,60,1);//均线周期

ma5:ma(close,m);

variable:n1=0;
variable:n2=0;

 

if cross(c,ma5) and time>091500 and time<151300 and holding=0 then begin
 buy(n1=0,1,limitr,ma5),IGNORECHECKPRICE;
 n1=1;
 end
 
if cross(ma5,c) and time>091500 and time<151300 and holding=0 then begin
buyshort(n2=0,1,limitr,ma5),IGNORECHECKPRICE;
n2=1;
end

if holding<0 and enterprice-l>=mindiff*n then sellshort(1,1,limitr,enterprice-mindiff*n),IGNORECHECKPRICE;
if holding>0 and enterprice-h<=mindiff*n then sell(1,1,limitr,enterprice+mindiff*n),IGNORECHECKPRICE ;

if minute<>ref(minute,1) then begin
    n1:=0;
    n2:=0;

end

 


//止损模块
多头损失点数:=c-enterprice;
空头损失点数:=enterprice-c;
if 空头损失点数<0 and abs(空头损失点数)>mindiff*n and holding<0 and enterbars>1 then 空头止损:sellshort(1,0,marketr),IGNORECHECKPRICE;
if 多头损失点数<0 and abs(多头损失点数)>mindiff*n and holding>0 and enterbars>1 then 多头止损:sell(1,0,marketr),IGNORECHECKPRICE;
止损点数:abs(多头损失点数);

 


//收盘前清仓
if time>=151400 then
begin
sellshort(holding<0,0,thisclose);
sell(holding>0,0,thisclose);
end


持仓:holding,linethick0;
资产:asset,noaxis,linethick2,coloryellow;
可用现金:cash(0),linethick0;


--  作者:jinzhe
--  发布时间:2015/7/23 9:58:45
--  

优化使用系统自带的功能,剩下的问题请在实际运行中查找


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

--  作者:COMBOY
--  发布时间:2015/7/23 10:07:05
--  

不是优化参数,是优化程序,能不能帮我看看?


--  作者:jinzhe
--  发布时间:2015/7/23 10:09:31
--  
那么你在实际中碰到什么问题了?没碰到问题优化些什么?
--  作者:COMBOY
--  发布时间:2015/7/23 10:22:38
--  
固定轮询模式发出了平仓信号却不平仓
--  作者:jinzhe
--  发布时间:2015/7/23 10:24:07
--  

有信号,下单了吗?是没下单还是下单了没成交?


--  作者:COMBOY
--  发布时间:2015/7/23 10:52:35
--  


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

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

10点47分发出平多信号,在2704点,但是实际成交确是2701点,这个是什么问题?


--  作者:jinzhe
--  发布时间:2015/7/23 10:54:10
--  

看下单日志,看看日志里面的报单价格是多少,成交价格又是多少。

你报单的价格,交易所要撮合,并不是一定会按照你报单的价格成交


--  作者:COMBOY
--  发布时间:2015/7/23 11:25:24
--  

按照我二楼编写的策略,这根k线该发出买入信号,但是,没有信号,这是什么原因?


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