以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请帮助修改一个动态突破策略交易系统 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=12503) |
-- 作者:Hongzhou -- 发布时间:2012/6/19 22:17:22 -- 请帮助修改一个动态突破策略交易系统 请帮助修改一个动态突破策略交易系统,谢谢
这是我写的,请帮助修改,并加入头寸管理语句(最下面是策略的原型语句),谢谢! variable:Lag=20;
Lag := (1 + Jitter_Change_ER) * Lag; UpBand := MA(CLOSE,Lag) + STD(CLOSE,Lag) * 2; BuyPoint := HHV(HIGH,Lag); SellPoint := MA(CLOSE,Lag);
SELL(CLOSE <= SellPoint, 0, MARKET);
//该策略的原型自然语句
四 具体策略 T=0(今日),滞后期K=20; 今日市场波动率=stdDev(Close,30); 昨日市场波动率= stdDev(Close(-1),30); 波动率变化率=(今日市场波动率-昨日市场波动率)/今日市场波动率; T=1(第二天),滞后期K=(1+波动率变化率)*K; K=min(K,60); K=max(K,20);
Upband=Average(Close,K)+stdDev(close,K)*2;布林带上限 Dnband=Average(Close,K)-stdDev(close,K)*2;布林带下限
buyPoint = Highest(High,K) /滞后期的最高价,为买入点 sellPoint = Lowest(Low,K) /滞后期的最低价,为卖出点 longLiqPoint =Average(Close,K) /做多平仓点 shortLiqPoint = Average(Close,K) / 做空平仓点
If(Close of yesterday > upBand) then initiate a long position if today\'smarket action >= buyPoint /如果昨日收盘价高于布林带上轨,今日市价高于买入点,则触发做多 If(Close of yesterday < dnBand) then initiate a short position if today\'smarket action <= sellPoint /如果昨日收盘价低于布林带下轨,今日市价低于卖出点,则触发做空 Liquidate long position if today\'s market action <= longLiqPoint/回落至滞后期的移动平均价,卖出平仓 Liquidate short position if today\'s market action >= shortLiqPoint/回调至滞后期的移动平均价,买入平仓 |
-- 作者:jinzhe -- 发布时间:2012/6/20 8:43:26 -- 你的仓位想要如何管理? |
-- 作者:Hongzhou -- 发布时间:2012/6/20 9:44:23 -- 只要做到先开后平就好了 |
-- 作者:rushtaotao -- 发布时间:2012/6/20 9:48:42 -- if holding>0 and cond then sell(); if holding=0 then buy; 这个样子应该能做到,没平不开 |