以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=185150) |
-- 作者:绍兴老黄 -- 发布时间:2021/4/13 9:30:06 -- 求助写移动止损代码 想法是这样的:如果close>REF(HHV(HIGH,N),1) ,则把当前K线后面的那一根K线的止损价,放在当前K线前面的第二个低点的位置(价位)。如果下一个K线(当前K线后的那根)的低点高于当前K线的低点,则止损位置相应提高。如果下一个K线(当前K线后的那根)的低点等于或低于当前K线的低点,则止损位置不作变动。我就是这个移动止损代码不会写,请求老师帮帮我,十分感谢! |
-- 作者:fly -- 发布时间:2021/4/19 14:08:42 -- 抱歉让您久等了,请您回答以下4个问题 REF(HHV(HIGH,N),1) ; //前N根K线的最高价 第一问:您的初始止损价原本是前N根K线的最低价吗? 一、收盘价格创历史新高,则止损价向对应向上调整? close>REF(HHV(HIGH,N),1) ;//当前收盘价,创造前N根K线的历史新高,则下一根K线的止损价就调整 第二问:止损价如何调整呢?-----调整成当前K线前面的第二个低点的位置(价位)? 这是指前面N根K线的最低价?还是前面N根K线里的,倒数第二个最低价格? 二、本根K线和下一根K线最低价的大小 第三问:下一个K线(当前K线后的那根)的最低价>当前K线的低点,则止损位置相应提高,如何提高,参照第二问? 下一个K线(当前K线后的那根)的最低价<=当前K线的低点,止损价保持不变 依据您上面的逻辑,您止损价调整有两个依据:一、收盘价格创历史新高,则止损价向对应向上调整 二、本根K线和下一根K线最低价的大小 第四问:这两个依据的关系是什么样的? 满足”第一个依据“的同时,也得满足”第二个依据“,的时候,我才调高止损价吗?
|
-- 作者:绍兴老黄 -- 发布时间:2021/5/2 23:38:24 -- 回老师第一问:初始止损价是离当前K线最近的第三个低点,然后,收盘价格创历史新高,低点不断上移,则止损价对应向上调整。close>REF(HHV(HIGH,N),1) ;//当前收盘价,创造前N根K线的历史新高,则下一根K线的止损价就相应往上调整。 回老师第二问:止损价调整成当前K线前面N根K线里的,当前K线往前数第三个低点价格。打个比如:郑煤近期的最低点价格为:今天780 ,昨天752 ,前天736 ,前前天 732 。当前K线为今天780,那么当前K线往前数第三低点是前前天732,前前天732价格就是当前K线(今天)的止损价位。 回老师第三问:下一个K线(当前K线后的那根)的最低价>当前K线的低点,则止损位置相应提高,如何提高: 止损位置往上提升一个低点。如果低点是提高的,那么,止损位置始终是在该K线前面的第三个低点。如果下一个K线(当前K线后面的那根)的最低价<=当前K线的低点,止损价保持不变。直至有一个K线的低点向下击穿第三个低点价位——止损离场。 回老师第四问:止损价调整的依据:在上升趋势中,不断抬高的低点是止损的位置,当前K线前面的 第三个低点是当前K线的止损价位,如果下一根K线的低点抬高,那么,止损价位也跟着抬高;如果下一根K线的低点<=当前K线的低点,那么,止损价位保持不变。 前面是价格上升,低点上升过程中的移动止损位置的设置。那么,如果价格下降,高点下降过程中的移动止损位置的设置,和前述同理,以当前K线前面的第三个高点为当前K线的止损价位,高点降低,止损也相应降低;如果下一根K线的高点>=当前K线的高点,那么,止损价位保持不变。 谢谢老师!
|
-- 作者:FireScript -- 发布时间:2021/5/11 14:01:23 -- 还需要明确以下几个问题: 问题1:“初始止损价是离当前K线最近的第三个低点” 这里的初始止损价 是基于开仓K位置定义的吗?在没有满足close>REF(HHV(HIGH,N),1) 之前都是不变的?然后这个第三个低点是指前面三个K当中的最低价,还是单纯值前面第三个K的最低价? 问题2:2楼的以下提问:“一、收盘价格创历史新高,则止损价向对应向上调整 二、本根K线和下一根K线最低价的大小 第四问:这两个依据的关系是什么样的?” 这个疑问,你这边没有直接回复啊。你提到了2个调整止损价的策略,但是你没有表述清楚这2个逻辑的关系。 |
-- 作者:绍兴老黄 -- 发布时间:2021/5/12 11:35:10 -- 对不起,老师,是我没有说清楚。 我想把顾比倒数线改成两条止损线,一条是多头止损线,一条是空头止损线。上升趋势时,多头止损线跟随上升趋势向上移动(也就是下面顾比倒数线的第三只重要蜡烛线的低点),并画出多头止损线。当上升趋势到达顶端并向下回落时,如果收盘价下穿多头止损线(即下穿第三只重要蜡烛线的低点),即多头趋势结束空头趋势开始,画出空头止损线。空头止损线即下面顾比倒数线的第三只重要蜡烛线的高点。 顾比倒数线: DISTL:=NEWLBARS(L,1); DISTH:=NEWHBARS(H,1); HI20:=REF(HHV(H,20),1); LO20:=REF(LLV(L,20),1); GBD1:=REF(L,DISTL); GBD2:=REF(GBD1,DISTL); GBD:IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20));//第三只重要蜡烛线的低点 GBG1:=REF(H,DISTH); GBG2:=REF(GBG1,DISTH); GBG:IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20));//第三只重要蜡烛线的高点 谢谢老师!
|
-- 作者:fly -- 发布时间:2021/5/20 16:08:43 -- 以下为顾比倒数线,多头止损示例。 variable:zs=c,maxhl=c; //把以上顾比线的代码复制一下 DISTL:=NEWLBARS(L,1); DISTH:=NEWHBARS(H,1); HI20:=REF(HHV(H,20),1); LO20:=REF(LLV(L,20),1); GBD1:=REF(L,DISTL); GBD2:=REF(GBD1,DISTL); GBD:=IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20)); GBG1:=REF(H,DISTH); GBG2:=REF(GBG1,DISTH); GBG:=IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20)); Sar1:SAR(10,2,20),CIRCLEDOT; DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIFF,9); MACD := 2*(DIFF-DEA); con1:=any(ref(Sar1>high,1) and Sar1<high,3)=1,linethick0; con2:=any(cross(diff,dea),3)=1 and diff<5,linethick0;//and abs(diff)<0.6 //下破移动止损线后离场 if holding>0 and (c<zs) then sell(1,1,limitr,c); if con1 and con2 and holding=0 then begin buy(1,1,limitr,c); zs:=gbd;//调用顾比倒数线做为止损 maxhl:=h;//记录当时的高点 end if holding>0 and h>maxhl then begin //创新高后,重新定位离场位,以实现浮动止损 zs:=gbd; maxhl:=h; end 止损线:zs;
[此贴子已经被作者于2021/5/20 16:09:04编辑过]
|
-- 作者:绍兴老黄 -- 发布时间:2021/5/21 22:25:53 -- 谢谢老师! |