In my signals I reference an indicators plot values. I do this so that I can make changes to the indicator on the fly, recompile it, then turn signals back on as a much faster method of making mass common inputs changes to the 100s of signals I have live.
Example: In the above example I can specify julian dates and times for big data releases that effect symbols BD and EX in indicator "DE CT EX + BD" and then have the effected signals flatten and reopen positions accordingly.
Hopefully that makes sense.
Now the issue. In MC10 if a chart was not trading live....... one would simply update the indicator, compile it, and now our non live chart would exit and enter trades around data releases accordingly.
However, in MC11 this is not the case. After updating the indicator the signal ignores the change and will fail to flatten going into a data release. One then has to turn the signal on/off AFTER the data release for the indicator changes to come through.
Fortunately charts trading live are still working normal. The issue for me is that my risk indicators reference the non-live charts as the "controls" from which to determine the correct positions I should be in. So this new issue in MC11 is quite a headache and requires lots more admin than before.
Can MC please update the platform to revert to the behaviour of MC10 please, in this regard?
Below is the indicator for users and MC to have a play with and to help demo the issue.
Simply create a simple signal that has an open position with the inputs: Des, dedate, release, prelease. Des you can just leave as "1". "Dedate" is the julian date of the datarelease. "release" is the release time (afterwhich we can take new positions). "prelease" is the time you want to be flat by. Then reference the indicators plot values in the signal inputs. Then, in the indicator, pick todays date, release as the close time of the NEXT bar from now and finally prerelease as the close time of this bar.
indicator:
Code: Select all
//fomc eg
plot1(1, "status");
plot3(43180,"jd");
plot4(1400,"release");
plot5(1300,"prerelease");
Code: Select all
inputs: Des(1), dedate(0), release(0645), prerelease(0600);
vars: nfsi(0);
if DEs=1 then
if datetojulian(date)=dedate and ((time>prerelease and time[1]<prerelease) or time=prerelease) then
nfsi=1;
if DEs=1 and nfsi=1 then
if (time[1]<=release and time>release) then begin
nfsi=0;
end;
if nfsi=1 then begin
sell ("DE lexit") next bar at market;
Buytocover ("DE sexit") next bar at market;
end;
if nfsi=0 then begin
buy next bar at market;
end;