本帖最后由 技术009 于 2021-7-15 10:27 编辑
[PEL] 复制代码
浮动盈亏:TACCOUNT( 4);
动态权益:TACCOUNT( 6);
保证金占用:TACCOUNT(28);
IF 保证金占用=0 then //保证金为0时候直 接重置全局变量
begin
EXTGBDATASET('MAX_fdyk',0);//最大浮动盈亏
EXTGBDATASET('pcqy',0);//根据最大浮动盈亏计算的满足平台条件时候的浮动盈亏情况
EXTGBDATASET('isClear',0);
end
if 浮动盈亏>EXTGBDATASET('MAX_fdyk',浮动盈亏) then
begin
EXTGBDATASET('MAX_fdyk',浮动盈亏);//更新最大浮动盈亏的值
if 浮动盈亏>动态权益*0.05 then EXTGBDATASET('pcqy',浮动盈亏*0.8);
if 浮动盈亏<动态权益*0.05 then
begin
if 浮动盈亏>0 then EXTGBDATASET('pcqy',浮动盈亏*0.6);
if 浮动盈亏<0 then EXTGBDATASET('pcqy',浮动盈亏*1.4);//浮动盈亏最大值是负数情况下,回落是一个负数绝对值增加的过程
end
end
if 浮动盈亏<=EXTGBDATA('pcqy') then //回落后平仓
begin
EXTGBDATASET('isClear',1); //满足条件 则修改这个全局变量的值,平仓全部依靠判断这个全局变量
end
if EXTGBDATA('isClear')=1 then //这里需要注意,之所以单独做这个全局变量是因为一旦开始平仓之后,浮动盈亏会直接变化,从而会影响整个逻辑。
begin
//这里写平仓语句 包含多空,请自行完善
end
1.以上代码运行时候 必须单独运行,且监控账户栏全部持仓。
2.如果中间终止程序化,再次启动最好清空全局变量。一切重新开始。因为这时候的全局变量纪录的值 是缺少停止的这段时间的,已经失真了。
|