老师您好,能否帮忙编写一个能够全自动下单的交易策略:
首先计算两个值:第一个值为前一个交易日的最高价减去当天收盘价的差,第二个值为前一个交易日的收盘价减去当天最低价的差。
其次取这两个值当中比较大的那个,乘以0.7,作为变量K的值。
然后分别定义两个变量:HH为今日开盘价加上K的值;LL为今日开盘价减去K的值。
如果最新价(high)大于等于HH,则平空翻多。如果最新价(low)小于等于LL,则平多翻空。
要求限定只能在15分钟K线上面显示信号。谢谢老师!
稍后客服为楼主做出解答,请稍后
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
仔细看了下,
“如果最新价(high)大于等于HH,则平空翻多。如果最新价(low)小于等于LL,则平多翻空。”这句话中最新价不是high,high是最高价
我再帮您改改
//这个是以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
C是不是指K线的收盘价?可是我的思路是只要盘中最新价符合就马上开仓,不用等到收盘。
还有请教一个问题,前一日的最高价和最低价能否用以下代码表示:
N:=barslast(date<>ref(date,1))+1;
hh:=ref(hhv(h,N),N);
ll:=ref(llv(l,N),N);
c是收盘价的意思,那你就用固定时间间隔,要用到序列模式
第二个问题,这样的话n是开盘到当前周期数,hh就成了n周期前n周期的最高价,ll也就是最低价,你这样会有个问题就是你今天开盘到现在如果只有5周期,hh就计算昨日收盘到最日收盘前5周期的最高价,不知道您是否明白我描述的
老师,能否麻烦写成不加品种限制的模式?
还有用close来写,是否每次都是在K线收盘价才发出指令?