以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  后台移动止损  (http://weistock.com/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 区别不大了。因为你字符串已经做了区别了。