以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]移动止盈问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=64033) |
-- 作者:yiechaochao -- 发布时间:2014/4/17 8:31:05 -- [求助]移动止盈问题 看了论坛中的移动止盈范例,添加进我的策略中,怎么maxprofit与win总是一直一致的,在行情转向过后,两个的数据还是一致,导致win2一直是0,这是什么原因 VARIABLE: maxprofit=0; win:=0; win2:=0; if holding > 0 and enterbars > 0 then begin win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win>maxprofit then begin maxprofit:=win; u:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 p:win2; end if holding < 0 and enterbars > 0 then begin win:=(enterprice-c)/enterprice*100; //记录最大盈利 if win> maxprofit then begin maxprofit:=win; i:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 d:win2; end //出现最高盈利后,回落到盈利的60%平仓出场 止赢多:SELL(win2>=60 and openprofit > 0, 0);// and openprofit > 0 止盈空:sellshort(win2>60 and openprofit > 0,0);
[此贴子已经被作者于2014/4/17 8:31:48编辑过]
|
-- 作者:jinzhe -- 发布时间:2014/4/17 9:07:40 -- 你的开仓语句写在哪里? |
-- 作者:yiechaochao -- 发布时间:2014/4/17 9:40:30 -- 整个程序总体是这样的顺序 VARIABLE: maxprofit=0; {这部分是引用昨日数据} HH:=hhv(昨高,n); HC:=hhv(昨收,n); LC:=LLV(昨收,n); LL:=LLV(昨低,n); we:=max(HH-LL,HC-LL) s:开盘价+k1*we; x:开盘价-k2*we z:(s+x)/2; //交易条件 a1:=c>上轨 and holding=0; a2:=c<下轨 and holding=0; //交易系统 开多:buy(a1=1 and (t1 or t2) and cyc>1,1,market); 开空:buyshort(a2=1 and (t1 or t2) and cyc>1,1,market); win:=0; win2:=0; if holding > 0 and enterbars > 0 then begin win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win>maxprofit then begin maxprofit:=win; u:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 p:win2; end if holding < 0 and enterbars > 0 then begin win:=(enterprice-c)/enterprice*100; //记录最大盈利 if win> maxprofit then begin maxprofit:=win; i:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 d:win2; end //出现最高盈利后,回落到盈利的60%平仓出场 止赢多:SELL(win2>=60 and openprofit > 0, 0);// and openprofit > 0 止盈空:sellshort(win2>60 and openprofit > 0,0); |
-- 作者:jinzhe -- 发布时间:2014/4/17 9:52:57 -- 把你引用昨日的数据贴一下
HH:=hhv(昨高,n);这个是什么意思,N周期前的昨高?
n的值是多少?
|
-- 作者:yiechaochao -- 发布时间:2014/4/17 10:11:41 -- VARIABLE: maxprofit=0; 昨高:=callstock(stklabel,vthigh,6,-n); 昨低:=callstock(stklabel,vtlow,6,-n); 昨收:=callstock(stklabel,vtclose,6,-n); \\\\n是15,指引用十五日内的最高最低价 HH:=hhv(昨高,n); HC:=hhv(昨收,n); LC:=LLV(昨收,n); LL:=LLV(昨低,n); we:=max(HH-LL,HC-LL) s:开盘价+k1*we; x:开盘价-k2*we z:(s+x)/2; //交易条件 a1:=c>s and holding=0; a2:=c<x and holding=0; //交易系统 开多:buy(a1=1 and (t1 or t2) and cyc>1,1,market); 开空:buyshort(a2=1 and (t1 or t2) and cyc>1,1,market); win:=0; win2:=0; if holding > 0 and enterbars > 0 then begin win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win>maxprofit then begin maxprofit:=win; u:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 p:win2; end if holding < 0 and enterbars > 0 then begin win:=(enterprice-c)/enterprice*100; //记录最大盈利 if win> maxprofit then begin maxprofit:=win; i:maxprofit; end win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 d:win2; end //出现最高盈利后,回落到盈利的60%平仓出场 止赢多:SELL(win2>=60 and openprofit > 0, 0);// and openprofit > 0 止盈空:sellshort(win2>60 and openprofit > 0,0); |
-- 作者:jinzhe -- 发布时间:2014/4/17 10:16:01 -- HH:=hhv(昨高,n);
HC:=hhv(昨收,n);
LC:=LLV(昨收,n);
LL:=LLV(昨低,n);
那这几句是用来干什么的?解释一下
|
-- 作者:yiechaochao -- 发布时间:2014/4/17 10:22:49 -- 这个是用来求的15日内最高价和最低价,还有收盘价的最高最低价。 [此贴子已经被作者于2014/4/17 10:24:24编辑过]
|
-- 作者:jinzhe -- 发布时间:2014/4/17 10:38:47 -- 算了,不指望你给我全部代码了,怎么改也编译不过 你不能理解范例中最大获利,那么给你一个简单的例子: maxprofit:=hhv(h,enterbars+1)-enteprice;多头 maxprofit:=enterprice-llv(l,enterbars+1);空头
|