以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 策略编写求助区 (http://weistock.com/bbs/list.asp?boardid=11) ---- [求助]老师帮助改下代码 (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=6681) |
-- 作者:laihua111111 -- 发布时间:2011/5/28 11:20:57 -- [求助]老师帮助改下代码 感觉文华程序化比不上金字塔,现想使用金字塔程序化,请老师帮助把文华模型给转成金字塔的。再就在此模型中增加个止损止盈的功能。 a.当开仓后,亏损达到30个点,自动止损; 文华模型: VAR6:=(2*CLOSE+HIGH+OPEN+LOW)/8; VAR7:=LLV(LOW,12); VAR8:=HHV(HIGH,20); VAR9:=EMA((VAR6-VAR7)/(VAR8-VAR7)*150,13); VARA:=EMA(0.667*REF(VAR9,1)+0.333*VAR9,2); SARLINE:=ABS(SAR(3,0.01,0.1)); TR:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),6); HD:=HIGH-REF(HIGH,1); LD:=REF(LOW,1)-LOW; DMP:=SUM(IFELSE(HD>0 && HD>LD,HD,0),6); DMM:=SUM(IFELSE(LD>0 && LD>HD,LD,0),6); PDI:=DMP*100/TR,COLORWHITE; MDI:=DMM*100/TR,COLORYELLOW; ADX:=MA(ABS(MDI-PDI)/(MDI+PDI)*150,20),COLORRED; ADXR:=(ADX+REF(ADX,14))/2,COLORGREEN; MA10:=EMA(CLOSE,11); MA1:=MA(CLOSE,5); VAR9>VARA&&CLOSE>=SARLINE&&MA10>REF(MA10,1)&&ADX>30&&CLOSE>REF(OPEN,1)&&CLOSE>REF(OPEN,2)&&CLOSE>REF(CLOSE,1)&&CLOSE>REF(CLOSE,2)&&CLOSE>MA1&&CLOSE>OPEN,BPK; VAR9<=VARA&&CLOSE<SARLINE&&MA10<REF(MA10,1)&&ADX<80&&CLOSE<REF(OPEN,1)&&CLOSE<REF(OPEN,2)&&CLOSE<REF(CLOSE,1)&&CLOSE<REF(CLOSE,2)&&CLOSE<MA1&&CLOSE<OPEN,SPK; |
-- 作者:laihua111111 -- 发布时间:2011/5/28 13:06:57 -- 模型是在小时周期上使用的。能否改成新交易系统 平开仓数量等好在模型中控制 [此贴子已经被作者于2011-5-28 13:11:47编辑过]
|
-- 作者:26327756l -- 发布时间:2011/5/30 9:10:58 -- 问题正在解决中 [此贴子已经被作者于2011-5-30 9:37:11编辑过]
|
-- 作者:fly -- 发布时间:2011/5/30 10:16:57 -- 仅把策略改写到金字塔里,以下代码即可实现. VAR6:=(2*CLOSE+HIGH+OPEN+LOW)/8; VAR7:=LLV(LOW,12); VAR8:=HHV(HIGH,20); VAR9:=EMA((VAR6-VAR7)/(VAR8-VAR7)*150,13); VARA:=EMA(0.667*REF(VAR9,1)+0.333*VAR9,2); SARLINE:=ABS(SAR(3,0.01,0.1)); T:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),6); HD:=HIGH-REF(HIGH,1); LD:=REF(LOW,1)-LOW; DMP:=SUM(IF(HD>0 and HD>LD,HD,0),6); DMM:=SUM(IF(LD>0 and LD>HD,LD,0),6); PDI:=DMP*100/T; MDI:=DMM*100/T,; ADX:=MA(ABS(MDI-PDI)/(MDI+PDI)*150,20),COLORRED; ADXR:=(ADX+REF(ADX,14))/2,COLORGREEN; MA10:=EMA(CLOSE,11); MA1:=MA(CLOSE,5); //平空开多 {开多}ENTERLONG:long and VAR9>VARA and CLOSE>=SARLINE and ADX>30 and CLOSE>OPEN,TFILTER; |
-- 作者:fly -- 发布时间:2011/5/30 11:04:55 -- 如果是想实现止损止盈,那就需要标准版及其以上 以下以高级图表程序化交易-----标准版功能,为例说明
//K线走完模式,逐K线模式
VAR6:=(2*CLOSE+HIGH+OPEN+LOW)/8; VAR7:=LLV(LOW,12); VAR8:=HHV(HIGH,20); VAR9:=EMA((VAR6-VAR7)/(VAR8-VAR7)*150,13); VARA:=EMA(0.667*REF(VAR9,1)+0.333*VAR9,2); SARLINE:=ABS(SAR(3,0.01,0.1)); T:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),6); HD:=HIGH-REF(HIGH,1); LD:=REF(LOW,1)-LOW; DMP:=SUM(IF(HD>0 and HD>LD,HD,0),6); DMM:=SUM(IF(LD>0 and LD>HD,LD,0),6); PDI:=DMP*100/T; MDI:=DMM*100/T,; ADX:=MA(ABS(MDI-PDI)/(MDI+PDI)*150,20),COLORRED; ADXR:=(ADX+REF(ADX,14))/2,COLORGREEN; MA10:=EMA(CLOSE,11); MA1:=MA(CLOSE,5); //平空开多 if long and VAR9>VARA and CLOSE>=SARLINE and ADX>30 and CLOSE>OPEN then if short and VAR9<=VARA and CLOSE<SARLINE and ADX<80 and CLOSE<OPEN then
if holding > 0 and enterbars > 0 then if holding < 0 and enterbars > 0 then //亏损达到30个点---30个最小变动价位,自动止损; //当开仓后,盈利达到40到100点时,回撤80%,平仓;
|
-- 作者:fly -- 发布时间:2011/5/30 11:11:18 -- 如果是想信号出现持续"w"秒再发委托的话,得是专业版. |
-- 作者:26327756l -- 发布时间:2011/5/30 13:48:58 -- 请问那个回撤是什么意思 计算公式是什么? |
-- 作者:26327756l -- 发布时间:2011/5/30 14:44:33 -- //不知对不对,加入了平仓参数p VAR7:=LLV(LOW,12); VAR8:=HHV(HIGH,20); VAR9:=EMA((VAR6-VAR7)/(VAR8-VAR7)*150,13); VARA:=EMA(0.667*REF(VAR9,1)+0.333*VAR9,2); SARLINE:=ABS(SAR(3,0.01,0.1)); TR1:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),6); HD:=HIGH-REF(HIGH,1); LD:=REF(LOW,1)-LOW; DMP:=SUM(IFELSE(HD>0 && HD>LD,HD,0),6); DMM:=SUM(IFELSE(LD>0 && LD>HD,LD,0),6); PDI:=DMP*100/TR1,COLORWHITE; MDI:=DMM*100/TR1,COLORYELLOW; ADX:=MA(ABS(MDI-PDI)/(MDI+PDI)*150,20),COLORRED; ADXR:=(ADX+REF(ADX,14))/2,COLORGREEN; MA10:=EMA(CLOSE,11); MA1:=MA(CLOSE,5); if VAR9>VARA&&CLOSE>=SARLINE&&MA10>REF(MA10,1)&&ADX>30&&CLOSE>REF(OPEN,1)&&CLOSE>REF(OPEN,2)&&CLOSE>REF(CLOSE,1)&&CLOSE>REF(CLOSE,2)&&CLOSE>MA1&&CLOSE>OPEN then if VAR9<=VARA&&CLOSE<SARLINE&&MA10<REF(MA10,1)&&ADX<80&&CLOSE<REF(OPEN,1)&&CLOSE<REF(OPEN,2)&&CLOSE<REF(CLOSE,1)&&CLOSE<REF(CLOSE,2)&&CLOSE<MA1&&CLOSE<OPEN then
HB:=HV - ASSET; //当前的回撤 hui:HB/HV; |
-- 作者:laihua111111 -- 发布时间:2011/5/30 21:03:58 -- 我说的回撤是指:开仓后,比如多头,价格涨到100 然后反相的掉到80 就是回撤了20% 再想请教个问题,就是模型在出现开平信号后,是马上开平仓,还是延迟发单呢,如马上发单,那有时信号只出一下就会变的,会造成频繁开平仓的。 问下上面回复的:平仓参数p 指的是什么呢 [此贴子已经被作者于2011-5-30 21:16:08编辑过]
|
-- 作者:26327756l -- 发布时间:2011/5/31 10:03:18 -- p是参数 ,手动可以设的 平仓手数。默认是1手。 上面的回撤 不是按照 “开仓后,比如多头,价格涨到100 然后反相的掉到80 就是回撤了20%” 而是总资产的回撤来编写的。 [此贴子已经被作者于2011-5-31 10:14:18编辑过]
|