Reply To: SWITCH function script usage

Optuma Forums Optuma Scripting SWITCH function script usage Reply To: SWITCH function script usage

#46719

Colin
  • Topics: 6
  • Replies: 13
  • Posts: 19

Hi Matthew,

Thanks. A great deal of understanding arose and I have completely revised my script. I see that the SWITCH function acts as a toggle when both inputs are on. You might want to update the knowledge base.

I have 1 final nasty bug. I’ll put the full code at the end. The troublesome bit is this:

===============================

 

BUYPRICE = IF( Ton, THISPRICE, BUYPRICE);

plot4 = BUYPRICE;

SELLPRICE = IF( Toff, THISPRICE,0);

plot5 = SELLPRICE;

THISPROFIT = IF( ((TRADING <= 0) and Toff), (SELLPRICE – BUYPRICE), 0);

//THISPROFIT = IF( ((TRADING <= 0) and Toff), SELLPRICE -(1.0 * BUYPRICE) , 0);

plot6 = THISPROFIT;

//plot6 = 0.5 * BUYPRICE;  // this plot works, BUYPRICE is as expected

etc….

====================

BUYPRICE is

  1. not surviving the trip between computation, plotting and its subsequent use in TOTPROFIT
  2. somehow being re-typed from a float to a boolean?

If I install the bold lines to plot BUYPRICE I get it plotted at 0.5 where you’d expect.

If I re-type BUYPRICE by coercing to a float by multiplying by 1.0 it still doesn’t work. 

No matter how I do it, if I include BUYPRICE it in TOTPROFIT IF(), it is as if it’s always zero. The SELLPRICE – BUYPRICE fails.

The full code….

==========================

// create all the change components DPco = open() – close(OFFSET=1); DPoc = close() – open(); DPhh = high() – high(OFFSET=1); DPll = low() – low(OFFSET=1); DPhl = (high() – low()) * ( ((close() – low()) / (high() – low())) – 0.5); // create the total change DPtot = DPco + DPoc + DPhh + DPll + DPhl; // compute the change compared to previous bar D2P = DPtot – OFFSET(DPtot, OFFSET=1); // Special plot placement to avoid optuma bug 1 May 2018 plot1 = DPtot; plot2 = D2P; c1 = (DPtot > 0) and (D2P > 0) and (OFFSET(D2P, OFFSET=1) > 0); c2 = (DPtot <= 0) ; TRADING = SWITCH( c1 , c2 ); // Positive edge on TRADING plot3 = TRADING; Ton = (TRADING > 0) and (OFFSET(TRADING, OFFSET=1) <= 0); // Positive edge on TRADING Toff = (TRADING <= 0) and (OFFSET(TRADING, OFFSET=1) > 0); // Negative edge on TRADING THISPRICE = (close() + open() + high() + low())/4.0; BUYPRICE = IF( Ton, THISPRICE, BUYPRICE); plot4 = BUYPRICE; SELLPRICE = IF( Toff, THISPRICE,0); plot5 = SELLPRICE; THISPROFIT = IF( ((TRADING <= 0) and Toff), (SELLPRICE – BUYPRICE), 0); //THISPROFIT = IF( ((TRADING <= 0) and Toff), SELLPRICE , 0); plot6 = THISPROFIT; //plot6 = 1.0 * BUYPRICE; //TOTPROFIT = IF( TRADING, OFFSET(TOTPROFIT, OFFSET=1), (IF(OFFSET(TRADING, OFFSET=1), (OFFSET(TOTPROFIT, OFFSET=1) + THISPROFIT), OFFSET(TOTPROFIT, OFFSET=1)) )); //TOTPROFIT = OFFSET(TOTPROFIT, OFFSET=1) + THISPROFIT; //plot7 = TOTPROFIT; plot1.Plotstyle = Step; plot1.colour = green; plot2.Plotstyle = Histogram; plot2.colour = red; plot3.Plotstyle = step; plot3.colour = black; plot3.linewidth = 2; plot4.Plotstyle = step; plot4.linestyle = dash; plot5.Plotstyle = step; plot5.linewidth = 2; plot6.Plotstyle = step; plot6.Colour = lightgreen; plot6.linewidth = 2; //plot7.Plotstyle = step; //plot7.linewidth = 2;

===============================

Also: In the absense of its automation, is there anyplace I can get the DOT functions and settings for PLOT.etc = somevalue?

I’m exploring workarounds for my TOTPROFIT computation, but feel you ought to know there’s something severely amiss in the script compiler/interpreter. 

Or I’ve messed up somehow!

cheers

colin

 

Pin It on Pinterest

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close