以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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=188333)
|
-- 作者:fxrock4
-- 发布时间:2021/5/17 9:56:15
-- 后台移动止损
VARIABLE:A=0; //将A赋值为1,表示当前有持仓 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 这没毛病吧? 那么空单的止损也是用A申明全局,还是要另建一个B申明全局? 如果多个移动止损方案呢,是否也只是用同一个A申明全局即可,或多单用A,空单用B?
|
-- 作者:FireScript
-- 发布时间:2021/5/17 10:08:44
--
如果 同时模型本身会有多空同时持仓的话,是要分开用2个全局变量的。
多个移动止损方案,也最好分开。 这个超全局变量是整个金字塔内都可以读取到的,所以如果不分开,在其他地方还有读写,就整个混乱了。另外你是否还是交易多品种的呢?如果是恐怕也要额外处理下,不过这个多品种的处理不是很麻烦。
|
-- 作者:fxrock4
-- 发布时间:2021/5/17 10:33:34
--
是的,有多品种,多空同时存在。那么多品种又要怎么额外处理呢?多谢
|
-- 作者:FireScript
-- 发布时间:2021/5/17 10:37:42
--
此主题相关图片如下: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
|
-- 作者:fxrock4
-- 发布时间:2021/5/17 11:21:23
--
略有不同,我的RB数值是显示现价哦 此主题相关图片如下:wechat 圖片_20210517111848.png
|
-- 作者:FireScript
-- 发布时间:2021/5/17 13:24:39
--
此主题相关图片如下: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
后面那个回落的部分没有加上去, 你看下你是不是触发了那个回落 导致这个纪录重置了。
|
-- 作者:fxrock4
-- 发布时间:2021/5/17 15:03:34
--
那行代码有的,现在没显示AG最新价了,为0,也不知道对不对 此主题相关图片如下:wechat 圖片_20210517145419.png
[此贴子已经被作者于2021/5/17 15:05:07编辑过]
|
-- 作者:FireScript
-- 发布时间:2021/5/17 15:22:37
--
满足了那个回落条件 就会重置。你回头有行情时候再测试下吧。每次加载公式运行之前,你可以手动清楚下全局变量。否则它会纪录之前的值,造成误判的。
|
-- 作者:fxrock4
-- 发布时间:2021/5/17 15:36:03
--
好的。 EXTGBDATASET( strab,1 );多单用1 EXTGBDATASET(stras,1);空单是不是得用-1,还是仍是1呢?
|
-- 作者:FireScript
-- 发布时间:2021/5/17 15:38:30
--
你多空如果分开了,1,还是-1 区别不大了。因为你字符串已经做了区别了。
|