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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 后台移动止损

   

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


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

主题:后台移动止损

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 10:08:44    Post IP:58.246.57.26[显示全部帖子]

 如果 同时模型本身会有多空同时持仓的话,是要分开用2个全局变量的。

多个移动止损方案,也最好分开。 这个超全局变量是整个金字塔内都可以读取到的,所以如果不分开,在其他地方还有读写,就整个混乱了。另外你是否还是交易多品种的呢?如果是恐怕也要额外处理下,不过这个多品种的处理不是很麻烦。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 10:37:42    Post IP:58.246.57.26[显示全部帖子]

 
图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
//其实就是为每个品种定义一个a.  做法就是用品种名称和字符串 a 做个拼接。


str:='a'+'_'+STKLABEL;
//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX(ZH1,'' ,0 )>0 AND EXTGBDATA(str )=0 THEN BEGIN
EXTGBDATASET( str,1 );
END
后面的‘a’全部换成str


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 13:24:39    Post IP:58.246.57.26[显示全部帖子]

 
图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

应该不会吧。你看我这个。
我的代码:
str:='a'+'_'+STKLABEL;
IF TBUYHOLDINGEX('','' ,0 )>0 AND EXTGBDATA(str)=0 THEN BEGIN
EXTGBDATASET(str,1 );
END
//使A始终表示监控开始后的最高价
IF DYNAINFO(7)>EXTGBDATA(str ) and EXTGBDATA(str )>0 THEN BEGIN
EXTGBDATASET( str,DYNAINFO( 7));
END

后面那个回落的部分没有加上去, 你看下你是不是触发了那个回落 导致这个纪录重置了。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 15:22:37    Post IP:58.246.57.26[显示全部帖子]

 满足了那个回落条件 就会重置。你回头有行情时候再测试下吧。每次加载公式运行之前,你可以手动清楚下全局变量。否则它会纪录之前的值,造成误判的。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 15:38:30    Post IP:58.246.57.26[显示全部帖子]

 你多空如果分开了,1,还是-1 区别不大了。因为你字符串已经做了区别了。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 16:13:08    Post IP:58.246.57.26[显示全部帖子]

 稍稍有些没明白你的意思。你说的ab是指什么?tsell那里的?
[此贴子已经被作者于2021/5/17 16:13:17编辑过]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 16:26:11    Post IP:58.246.57.26[显示全部帖子]

不能的哦。
 

IF TBUYHOLDINGEX(ZH1,'' ,0 )>0 AND EXTGBDATA('a' )=0 THEN BEGIN 
EXTGBDATASET( 'a',1 );
END
//使A始终表示监控开始后的最高价
IF DYNAINFO(7)>EXTGBDATA('a' ) and EXTGBDATA('a' )>0 THEN BEGIN
EXTGBDATASET( 'a',DYNAINFO( 7));
END
//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA('a' )- DYNAINFO(5)/DYNAINFO(7)>1.035  and EXTGBDATA('a' )>0 THEN BEGIN
TSELL(pd,TBUYHOLDINGEX(ZH1,'',1),MKT,1,ZH1,'');
EXTGBDATASET( 'a',0);
END

这2个全局变量的操作 都在if的条件下进行的。你上面这样的话,就相当于无限制的重置全局变量为0 了。




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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/17 16:26:46    Post IP:58.246.57.26[显示全部帖子]

 
ab:=EXTGBDATA(strab)- DYNAINFO(5)/DYNAINFO(7)>1.035 and EXTGBDATA(strab)>0;
if  ab then
begin
TSELL(1,TBUYHOLDINGEX(ZH1,'',1),MKT,1,ZH1,'');
EXTGBDATASET(strab,0);
end

这样才行的。



命数如织,当如磐石。
 回到顶部