以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 取开仓那根k线的高低价做止损 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=176022) |
-- 作者:arutema -- 发布时间:2020/5/13 16:48:44 -- 取开仓那根k线的高低价做止损 老师 开仓后引用开仓时的那根k线的高低价 做止损位 用enterbars 做不到 请问怎么解决 |
-- 作者:FireScript -- 发布时间:2020/5/13 16:57:14 -- 用enterbars可以做到的。 但是这个函数取值和代码所在位置有关。最好放在开仓语句后面。 jc:cross(ma(c,5),ma(c,10)); buy(jc and holding=0,1,market); kch:ref(h,enterbars+1),NODRAW; kcl:ref(l,enterbars+1),NODRAW; kch,kcl分别就是开仓K的最高价和最低价。
|
-- 作者:arutema -- 发布时间:2020/5/13 19:20:07 -- 老师 能给看下 一下代码 为什么正常止损止盈, 我想实现的是 在开仓后指标相反止盈,做多在开仓引用的那根k线最低点设止损,空单开仓引用的那根k线最高点设空止损,为啥写出在是混乱的 错在哪 u:ref(ma(hhv(HIGH,3),1),1),COLORRED;, d:ref(ma(llv(l,3),1),1),COLORgreen; x1:u-d,colorblue; VARIABLE:g:=0; 多赢:sell(x1>4*MINDIFF and h-d>=x1*1.1 and HOLDING>0,HOLDING,MARKEt);// 空赢:sellshort(x1>4*MINDIFF and u-l>=x1*1.1 and HOLDING<0,holding,MARKET);// 多进:buy(x1>4*MINDIFF and u-l>=x1*1.1 and holding=0,1,MARKET);// aa: llVBARS(l,ENTERBARS),NODRAW;//-((h-l)/2) if holding>0 then g:=aa; IF g>c and HOLDING>0 THEN BEGIN 多损:SELL(1,HOLDING,MARKET); END 空进:BUYSHORT(x1>4*MINDIFF and h-d>=x1*1.1 and HOLDING=0,1,MARKET);// aa1: HHVBARS(h,ENTERBARS),NODRAW;//+((h-l)/2) if holding<0 then g:=aa1; IF g < c and HOLDING<0 THEN BEGIN 空损:SELLshort(1,HOLDING,MARKET); END
|
-- 作者:FireScript -- 发布时间:2020/5/14 9:01:17 -- “我想实现的是 在开仓后指标相反止盈” 这啥意思?你这个代码和你前面说的思路不一致。把你多空止盈止损思路完整描述下吧。 [此贴子已经被作者于2020/5/14 9:06:54编辑过]
|
-- 作者:arutema -- 发布时间:2020/5/14 11:22:08 -- 这个给超卖找买指标 满足 u就做空 满足d做多,x1>4*MINDIFF and h-d>=x1*1.1止盈, 反正空赢, 止损为开多仓以开仓引用的开仓时拿根k线最低点作为止损位, 开空仓反之, 这样解释可以吗 |
-- 作者:FireScript -- 发布时间:2020/5/14 13:31:02 -- 这里 aa: llVBARS(l,ENTERBARS),NODRAW;//-((h-l)/2) if holding>0 then g:=aa; IF g>c and HOLDING>0 THEN BEGIN 多损:SELL(1,HOLDING,MARKET); END 空进:BUYSHORT(x1>4*MINDIFF and h-d>=x1*1.1 and HOLDING=0,1,MARKET);// aa1: HHVBARS(h,ENTERBARS),NODRAW;//+((h-l)/2) if holding<0 then g:=aa1; IF g < c and HOLDING<0 THEN BEGIN 空损:SELLshort(1,HOLDING,MARKET); END 这2个地方应该是尝试表示的是开仓以来的最高,最低价 并非开仓K位置的高地价。这个明确下到底是要表达是的开仓K的最高最低价,还是开仓以来的最高最低价。 另外就是就算表达的是开仓以来的最高最低价,也是有错误的。这里要做个+1的操作。否则开仓第二个K,ENTERBARS是0. HHVBARS(h,ENTERBARS+1)
[此贴子已经被作者于2020/5/14 13:31:49编辑过]
|
-- 作者:jzt006 -- 发布时间:2020/6/15 12:48:56 -- 注意检查符号,和符号的大小写。 |