以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  几个变量刷新的问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=183220)

--  作者:sword8586
--  发布时间:2020/11/27 10:54:18
--  几个变量刷新的问题
如题:几个变量刷新的问题——1分钟后K,信号执行方式,固定1秒轮询,tick,多个窗格使用同一公式;
开多条件:C>O;
限制开仓的方法:
1:
if holding=0 and 开多条件 then begin
   buy(1,1,thisclose);
end
2、
VARIABLE:mholding=0;
if mholding=0 and 开多条件 then begin
   buy(1,1,thisclose);
   mholding:=mholding+1;
end
   结果:1与2方法未出平仓信号前,反复开仓;
3、
if EXTGBDATA(\'mholding\')=0 and 开多条件 then begin
  buy(1,1,thisclose);
   EXTGBDATASET(\'mholding\',Lots);
end
   结果:几个窗格同时发出信号,但是只成交Lots手。

1、请问如何解决这一问题?
2、GLOBALVARIABLE:mholding=0;
mholding=lots也如同EXTGBDATASET(\'mholding\',Lots)中是实时刷新,不像VARIABLE:mholding=0;是K走完刷新吗?
谢谢!

--  作者:banzhuan
--  发布时间:2020/11/27 11:07:30
--  
1、 在同一根1分钟周期K线上,就算信号一直在闪烁,也只会开仓一次,因为代码里就只有一个buy语句。 你就用开一个窗格,运行1分钟内信号频繁闪烁时观察下账户下单情况。

2、EXTGBDATA 这个全局变量对整个金字塔有效,也就是A窗格变化后,其他窗格中也会被赋值。 图表 用 VARIABLE 就行了;  固定轮询的话就是1秒会刷新一次。

--  作者:sword8586
--  发布时间:2020/11/27 11:10:35
--  
VARIABLE:mholding=0;
if mholding=0 and 开多条件 then begin
   buy(1,1,thisclose);
   mholding:=mholding+1;
end
版主老师,这种方法不行喔,我实盘根本控制不到,曾经棉花开了24手!而我目标只是开一手,等待下一个平仓信号。

--  作者:banzhuan
--  发布时间:2020/11/27 11:15:09
--  
不是说了嘛,你就开一个图表,用 c>o 作为开仓条件,看下一根K线上会不会重复下单呢。

金字塔的机制就是 同一根K线上一个开仓语句只会下单一次,不管你信号闪了几次。

--  作者:sword8586
--  发布时间:2020/11/27 13:13:29
--  
老师,再次测试,控制不住!
当C>O出现信号,即刻开仓,但是当C>O转为C<O收阴线,直到新的K线C>O,又开了一手。实盘测试!if0000
[此贴子已经被作者于2020/11/27 13:13:42编辑过]

--  作者:sword8586
--  发布时间:2020/11/27 13:21:02
--  
很显然VARIABLE:mholding=0;变量刷新出了问题。
--  作者:banzhuan
--  发布时间:2020/11/27 13:26:52
--  
新的一根K又出现 C>O 当然会开仓了,又不是同一根K上信号闪的。

全局变量也没法控制历史信号闪的问题的,这种只能用 持仓同步来完善了,另外要考虑避免信号闪的问题。