以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  交易策略编写的问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=11222)

--  作者:txdys2008
--  发布时间:2012/4/22 17:01:03
--  交易策略编写的问题

老师您好,能否帮忙编写一个能够全自动下单的交易策略:

首先计算两个值:第一个值为前一个交易日的最高价减去当天收盘价的差,第二个值为前一个交易日的收盘价减去当天最低价的差。

其次取这两个值当中比较大的那个,乘以0.7,作为变量K的值。

然后分别定义两个变量:HH为今日开盘价加上K的值;LL为今日开盘价减去K的值。

如果最新价(high)大于等于HH,则平空翻多。如果最新价(low)小于等于LL,则平多翻空。

要求限定只能在15分钟K线上面显示信号。谢谢老师!


--  作者:Leon
--  发布时间:2012/4/23 8:57:25
--  

稍后客服为楼主做出解答,请稍后


--  作者:rushtaotao
--  发布时间:2012/4/23 9:22:41
--  

num1:=CALLSTOCK( \'\',vthigh ,6 ,-1 )-c;
num2:=CALLSTOCK( \'\',vtclose ,6 ,-1 )-l;
k:max(num1,num2)*0.7;
HH:O+K;
LL:O-K;
if h>HH then
begin
   sellshort(1,0,market);
   buy(1,1,market);
end

if l<LL then
begin
    sell(1,0,market);
    buyshort(1,1,market);
end


--  作者:txdys2008
--  发布时间:2012/4/23 10:48:13
--  
老师  您刚才发的代码在图上无法显示,请问这是为何?
--  作者:rushtaotao
--  发布时间:2012/4/23 11:08:57
--  

仔细看了下,

“如果最新价(high)大于等于HH,则平空翻多。如果最新价(low)小于等于LL,则平多翻空。”这句话中最新价不是high,high是最高价

我再帮您改改


--  作者:txdys2008
--  发布时间:2012/4/23 11:17:44
--  
好的 麻烦老师了
--  作者:rushtaotao
--  发布时间:2012/4/23 11:21:08
--  

//这个是以if00,股指连续为例,您得自己改下品种代码

 

num1:CALLSTOCK( \'if00\',vthigh ,6 ,-1 )-c;
num2:CALLSTOCK( \'if00\',vtclose ,6 ,-1 )-l;
k:max(num1,num2)*0.7;
HH:O+K;
LL:O-K;
if c>=HH then
begin
   sellshort(1,0,market);
   buy(1,1,market);
end

if c<=LL then
begin
    sell(1,0,market);
    buyshort(1,1,market);
end


--  作者:txdys2008
--  发布时间:2012/4/23 12:44:20
--  

C是不是指K线的收盘价?可是我的思路是只要盘中最新价符合就马上开仓,不用等到收盘。

还有请教一个问题,前一日的最高价和最低价能否用以下代码表示:

N:=barslast(date<>ref(date,1))+1;
hh:=ref(hhv(h,N),N);
ll:=ref(llv(l,N),N);


--  作者:rushtaotao
--  发布时间:2012/4/23 14:34:28
--  

c是收盘价的意思,那你就用固定时间间隔,要用到序列模式

 

第二个问题,这样的话n是开盘到当前周期数,hh就成了n周期前n周期的最高价,ll也就是最低价,你这样会有个问题就是你今天开盘到现在如果只有5周期,hh就计算昨日收盘到最日收盘前5周期的最高价,不知道您是否明白我描述的


--  作者:txdys2008
--  发布时间:2012/4/24 13:52:19
--  

老师,能否麻烦写成不加品种限制的模式?

还有用close来写,是否每次都是在K线收盘价才发出指令?