以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp)
-- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4)
---- 移动止损申明变量再赋值 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=176232)
|
-- 作者:arutema
-- 发布时间:2020/5/25 9:59:49
-- 移动止损申明变量再赋值
当触发t1时进仓,赋值g=aa止损为开仓周期的最低点,当再次触发t1时,重新赋值g(取再次触发t1的那根k线的低点做为止损点,达到移动止损的效果) t1:CROSS(d,mma); if t1 and holding=0 then begin BUY( 1,1);// end; aa:ref(l,ENTERBARS+1),NODRAW;//取开仓时的最低价做止损,这个写进if里面会提示错误不能引用ref,, if holding>0 and aa then begin g:=aa; END; if t1 and holding=1 then// 这不执行再赋值,知道不对 但不知道怎么写 请老师指教 begin
g:=aa;
end;
//止损 IF g>c and HOLDING>0 THEN BEGIN 多损:SELL(1,HOLDING,MARKET); END
|
-- 作者:wenarm
-- 发布时间:2020/5/25 10:38:55
--
你自己本地输出t1 and holding=1 这个条件是否真的成立。只要成立就会给g赋值
[此贴子已经被作者于2020/5/25 10:39:04编辑过]
|
-- 作者:arutema
-- 发布时间:2020/5/25 11:52:21
--
等于1了 就没做任何运算,请问有没有别的写法
|
-- 作者:wenarm
-- 发布时间:2020/5/25 12:08:19
--
那肯定赋值过了,只是你看到的aa的值和之前的一样而已。
|
-- 作者:arutema
-- 发布时间:2020/5/25 12:24:30
--
麻烦老师给看看那写错了 止损并没移到触发k线下 此主题相关图片如下:6.png
|
-- 作者:wenarm
-- 发布时间:2020/5/25 13:07:30
--
这种图对分析问题没有半点意义。自己在图表中输出对应的结果,逐级向上找就行。
如果确实等于1,自己输出aa的值看结果。以此类推
|
-- 作者:FireScript
-- 发布时间:2020/5/25 14:39:01
--
你的思路是怎样的?最初以开仓K的最低价作为止损价,当第二次满足t1条件时候,以这个K的最低价 作为止损价?
[此贴子已经被作者于2020/5/25 14:42:27编辑过]
|
-- 作者:FireScript
-- 发布时间:2020/5/25 14:47:10
--
t1:CROSS(ma(c,5),ma(c,10)); if t1 and holding=0 then begin BUY( 1,1); end;
g:VALUEWHEN(t1,l); //止损 IF g>c and HOLDING>0 THEN BEGIN 多损:SELL(1,HOLDING,MARKET);
END
没必要那么复杂的。用VALUEWHEN函数就行了。还有就是如果第二次重设止损线之后还是没有满足条件平仓。这后面的逻辑怎么继续下去呢?
|
-- 作者:arutema
-- 发布时间:2020/5/25 14:51:11
--
我思路还不算完整 一边写 一边尝试,谢谢老师
|