欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 移动止损申明变量再赋值

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3851人关注过本帖树形打印复制链接

主题:移动止损申明变量再赋值

帅哥哟,离线,有人找我吗?
arutema
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:191 积分:0 威望:0 精华:0 注册:2015/11/21 21:26:35
移动止损申明变量再赋值  发帖心情 Post By:2020/5/25 9:59:49    Post IP:182.34.20.158[只看该作者]

当触发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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/5/25 10:38:55    Post IP:180.169.30.6[只看该作者]

你自己本地输出t1 and holding=1 这个条件是否真的成立。只要成立就会给g赋值

[此贴子已经被作者于2020/5/25 10:39:04编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
arutema
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:191 积分:0 威望:0 精华:0 注册:2015/11/21 21:26:35
  发帖心情 Post By:2020/5/25 11:52:21    Post IP:182.34.20.158[只看该作者]

等于1了 就没做任何运算,请问有没有别的写法



 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/5/25 12:08:19    Post IP:180.169.30.6[只看该作者]

那肯定赋值过了,只是你看到的aa的值和之前的一样而已。

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
arutema
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:191 积分:0 威望:0 精华:0 注册:2015/11/21 21:26:35
  发帖心情 Post By:2020/5/25 12:24:30    Post IP:182.34.20.158[只看该作者]

麻烦老师给看看那写错了 止损并没移到触发k线下
图片点击可在新窗口打开查看此主题相关图片如下:6.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/5/25 13:07:30    Post IP:180.169.30.6[只看该作者]

这种图对分析问题没有半点意义。自己在图表中输出对应的结果,逐级向上找就行。

如果确实等于1,自己输出aa的值看结果。以此类推



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/5/25 14:39:01    Post IP:180.169.30.6[只看该作者]

 你的思路是怎样的?最初以开仓K的最低价作为止损价,当第二次满足t1条件时候,以这个K的最低价 作为止损价?
[此贴子已经被作者于2020/5/25 14:42:27编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/5/25 14:47:10    Post IP:180.169.30.6[只看该作者]

 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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:191 积分:0 威望:0 精华:0 注册:2015/11/21 21:26:35
  发帖心情 Post By:2020/5/25 14:51:11    Post IP:182.34.20.158[只看该作者]

我思路还不算完整 一边写 一边尝试,谢谢老师

 回到顶部