// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN( "USING A TRADE COMPOSITE" ); function DeleteComposite( CompositeName ) { global Ticker; oAB = CreateObject( "Broker.Application" ); oStocks = oAB.Stocks(); oStocks.Remove( CompositeName ); oAB.RefreshAll(); } function AddTradeToComposite( Ticker, Action, LMTPrice ) { global Ticker; BI = BarIndex(); LBI = LastValue( BI ); if ( Action != "" ) { SignalArray = Nz( Foreign( Ticker + "~SignalArrays", "V", False ) ); BuyPriceArray = Nz( Foreign( Ticker + "~SignalArrays", "O", False ) ); SellPriceArray = Nz( Foreign( Ticker + "~SignalArrays", "H", False ) ); ShortPriceArray = Nz( Foreign( Ticker + "~SignalArrays", "L", False ) ); CoverPriceArray = Nz( Foreign( Ticker + "~SignalArrays", "C", False ) ); switch ( Action ) { case "BUY": SignalArray[LBI] = SignalArray[LBI] | 1; BuyPriceArray[LBI] = LMTPrice; break; case "SELL": SignalArray[LBI] = SignalArray[LBI] | 2; SellPriceArray[LBI] = LMTPrice; break; case "SHORT": SignalArray[LBI] = SignalArray[LBI] | 4; ShortPriceArray[LBI] = LMTPrice; break; case "COVER": SignalArray[LBI] = SignalArray[LBI] | 8; CoverPriceArray[LBI] = LMTPrice; break; case "REVLONG": SignalArray[LBI] = SignalArray[LBI] | 8 | 1; CoverPriceArray[LBI] = BuyPriceArray[LBI] = LMTPrice; break; case "REVSHORT": SignalArray[LBI] = SignalArray[LBI] | 2 | 4; SellPriceArray[LBI] = ShortPriceArray[LBI] = LMTPrice; break; } AddToComposite( SignalArray, Ticker + "~SignalArrays", "V", 7 | atcFlagEnableInIndicator ); AddToComposite( BuyPriceArray, Ticker + "~SignalArrays", "O", 7 | atcFlagEnableInIndicator ); AddToComposite( SellPriceArray, Ticker + "~SignalArrays", "H", 7 | atcFlagEnableInIndicator ); AddToComposite( ShortPriceArray, Ticker + "~SignalArrays", "L", 7 | atcFlagEnableInIndicator ); AddToComposite( CoverPriceArray, Ticker + "~SignalArrays", "C", 7 | atcFlagEnableInIndicator ); } } Ticker = Name(); Action = ""; if ( ParamTrigger( "Buy", "BUY" ) ) Action = "BUY"; if ( ParamTrigger( "Sell", "SELL" ) ) Action = "SELL"; if ( ParamTrigger( "Short", "SHORT" ) ) Action = "SHORT"; if ( ParamTrigger( "Cover", "COVER" ) ) Action = "COVER"; if ( ParamTrigger( "Reverse to Long", "REVLONG" ) ) Action = "REVLONG"; if ( ParamTrigger( "Reverse to Short", "REVSHORT" ) ) Action = "REVSHORT"; if ( ParamTrigger( "Delete Signal Compoiste", "DELETE" ) ) DeleteComposite( Ticker + "~SignalArrays" ); AddTradeToComposite( Ticker, Action, LastValue( Close ) ); RequestTimedRefresh( 0.1 ); if ( SetForeign( Ticker + "~SignalArrays" ) ) { SignalArray = Nz( Foreign( Ticker + "~SignalArrays", "V", False ) ); Buy = IIf( SignalArray & 1, 1, 0 ); Sell = IIf( SignalArray & 2, 1, 0 ); Short = IIf( SignalArray & 4, 1, 0 ); Cover = IIf( SignalArray & 8, 1, 0 ); BuyPrice = Nz( Foreign( Ticker + "~SignalArrays", "O" ) ); SellPrice = Nz( Foreign( Ticker + "~SignalArrays", "H" ) ); ShortPrice = Nz( Foreign( Ticker + "~SignalArrays", "L" ) ); CoverPrice = Nz( Foreign( Ticker + "~SignalArrays", "C" ) ); PlotShapes( IIf( Buy, shapeSmallUpTriangle, shapeNone ), 5, 0, BuyPrice, 0 ); PlotShapes( IIf( Sell, shapeSmallDownTriangle, shapeNone ), 4, 0, SellPrice, 0 ); PlotShapes( IIf( Short, shapeHollowDownTriangle, shapeNone ), 4, 0, ShortPrice, 0 ); PlotShapes( IIf( Cover, shapeHollowUpTriangle, shapeNone ), 5, 0, CoverPrice, 0 ); } RestorePriceArrays(); Plot( C, "", 1, 128 ); _SECTION_END();