/ _SECTION_BEGIN("ADX"); Col_bar = IIf(EMA(CCI(14),2) > Ref(EMA(CCI(14),2),-1),colorBrightGreen,colorRed); Plot(Close,"price",col_bar,styleCandle); _SECTION_END(); _SECTION_BEGIN("BB"); bb2top = BBandTop(Close,20,2.25); bb1top = BBandTop(Close,20,1); bb2bot = BBandBot(Close,20,2.25); bb1bot = BBandBot(Close,20,1); //PlotOHLC( Cc,Cc,80,Cc, "", IIf( Cc > 0, colorGreen, colorRed ), styleCloud | styleClipMinMax, -80, 80 ); Plot (bb2top,"",IIf(bb2top > Ref(bb2top,-1) AND bb2bot < Ref(bb2bot,-1),colorBlue,colorGrey40),styleNoLabel); Plot (bb2bot,"",IIf(bb2top > Ref(bb2top,-1) AND bb2bot < Ref(bb2bot,-1),colorBlue,colorGrey40),styleNoLabel); //Col_action = IIf(Close >bb1top AND PDI(range) > MDI(range),colorBrightGreen,IIf(CloseRef(ADX(range),-1),colorBlue,colorBlack), styleOwnScale| styleArea|styleNoLabel,-0.5,100); //Plot(5, "", Col_action, styleOwnScale| styleArea|styleNoLabel,-0.5,100); _SECTION_END(); //PlotOHLC(EMA( Close, 19 ),IIf(EMA( Close, 19 ) > EMA( Close, 21 ),EMA( Close, 19 ),EMA( Close, 21 )),IIf(EMA( Close, 19 ) MA(EMA( Close, 20 ),3),colorDarkGreen,colorDarkRed),styleCloud); _SECTION_END(); _SECTION_BEGIN("SIMPLE_D-CAMS_SHOW"); //---- pivot points DayH = TimeFrameGetPrice("H", inDaily, -1);// yesterdays high DayL = TimeFrameGetPrice("L", inDaily, -1);//low DayC = TimeFrameGetPrice("C", inDaily, -1);//close DayO = TimeFrameGetPrice("O", inDaily);// current day open HiDay = TimeFrameGetPrice("H", inDaily); LoDay = TimeFrameGetPrice("L", inDaily); TimeFrameSet( inDaily ); R6 = (DayH / DayL) * DayC * 1.002; R5 = (DayH / DayL) * DayC; R4 = (((DayH / DayL) + 0.83) / 1.83) * DayC; R3 = ( ( (DayH / DayL) + 2.66) / 3.66) * DayC; R2 = ( ( (DayH / DayL) + 4.5) / 5.5) * DayC; R1 = ( ( (DayH / DayL) + 10) / 11) * DayC; S1 = (2- ( ( (DayH / DayL) + 10) / 11)) * DayC; S2 = (2-( (DayH / DayL) + 4.5) / 5.5) * DayC; S3 = (2-(( DayH / DayL) + 2.66) / 3.66) * DayC; S4 = (2-( (DayH / DayL) + 0.83) / 1.83) * DayC; S5 = (2-( DayH / DayL)) * DayC; S6 = (2-( DayH / DayL)) * DayC * 0.998; ShowR5 = ParamToggle("R5", "No|Yes"); R5Color=ParamColor( "R5Color", colorGold ); ShowR4 = ParamToggle("R4", "yes|no"); R4Color=ParamColor( "R4Color", colorOrange ); ShowR3 = ParamToggle("R3", "yes|no"); R3Color=ParamColor( "R3Color", colorOrange ); ShowR2 = ParamToggle("R2", "No|Yes"); R2Color=ParamColor( "R2Color", colorDarkRed ); ShowR1 = ParamToggle("R1", "No|Yes"); R1Color=ParamColor( "R1Color", colorRed ); ShowS1 = ParamToggle("S1", "No|Yes"); S1Color=ParamColor( "S1Color", colorGreen ); ShowS2 = ParamToggle("S2", "No|Yes"); S2Color=ParamColor( "S2Color", colorBrightGreen ); ShowS3 = ParamToggle("S3", "yes|no"); S3Color=ParamColor( "S3Color", colorDarkGreen ); ShowS4 = ParamToggle("S4", "yes|no"); S4Color=ParamColor( "S4Color", colorDarkGreen ); ShowS5 = ParamToggle("S5", "No|Yes"); S5Color=ParamColor( "S5Color", colorAqua ); //Shadowcolor = ParamColor("Shadow",ColorRGB(40,30,20)); //Shadowcolor1 = ParamColor("Shadow1",ColorRGB(20,30,20)); //Shadowcolor2 = ParamColor("Shadow2",ColorRGB(30,40,0)); //style = styleDots | styleThick + styleNoRescale ; style = styleLine + styleNoRescale ; if(ShowR5 == True) Plot(R5, "R5",R5Color,style); if(ShowR4 == False) Plot(R4, "R4",R4Color,Style); if(ShowR3 == False) Plot(R3, "R3",R3Color,style); if(ShowR2 == True) Plot(R2, "R2",R2Color,styleLine); if(ShowR1 == True) Plot(R1, "R1",R1Color,styleLine); if(ShowS1 == True) Plot(S1, "S1",S1Color,styleLine); if(ShowS2 == True) Plot(S2, "S2",S2Color,styleLine); if(ShowS3 == False) Plot(S3, "S3",S3Color,style); if(ShowS4 == False) Plot(S4, "S4",S4Color,style); if(ShowS5 == True) Plot(S5, "S5",S5Color,style); ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1))); TimeFrameRestore(); _SECTION_END(); PlotOHLC(bb2top,bb2top,bb1top,bb1top,"",colorDarkGrey,styleCloud); PlotOHLC(bb1bot,bb1bot,bb2bot,bb1bot,"",colorDarkGrey,styleCloud); _SECTION_BEGIN("Fibo for all bars"); TimeFrameSet( in15Minute*2 ); DH=Ref(H,-1); DL=Ref(L,-1); DC=Ref(C,-1); pd = (O+ DH+ DL + DC )/4; sd1 = (2*pd)-DH; sd2 = pd -(DH - DL); sd3 = Sd1 - (DH-DL); rd1 = (2*pd)-DL; rd2 = pd +(DH -DL); rd3 = rd1 +(DH-DL); //Plot (pd,"Pivot",colorBlue,styleDots); //Plot (rd1," R1 ",35,styleDots); //Plot (rd2," R2 ",35,styleDots); //Plot (rd3," R3 ",35,styleDots); //Plot (sd1," S1 ",4,styleDots); //Plot (Sd2," S2 ",4,styleDots); //Plot (Sd3," S3 ",4,8+16); /* style = IIf(ParamList("Chart style", "styleCandle|styleBar")=="styleCandle",64,128+4); Plot (C,Date ()+" close",1,style); //ENABLE THIS TO HAVE CANDLES AS WELL */ TimeFrameRestore(); Title = EncodeColor(colorWhite)+ "LINKON'S PIVOT TRADING SYSTEM" + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) + " - " + Date() +" - " //+ WriteIf(Col_action==colorGreen, EncodeColor(colorGreen)+"stay LONG","")+ WriteIf(Col_action==colorRed, EncodeColor(colorRed)+"stay SHORT","")+ WriteIf(Col_action==colorBlack, EncodeColor(colorYellow)+"No Trend","")+"\n" + "Vol= "+ WriteVal(V) +WriteIf ( V > MA(V,26) ,EncodeColor(colorGreen)+" UP "+ (V/MA(V,26))*100 + " %", EncodeColor(colorRed)+" DOWN "+ (V/MA(V,26))*100 + " %") + EncodeColor(colorGreen)+ "\n R3 : "+ EncodeColor(colorWhite)+RD3 + EncodeColor(colorGreen)+ "\n R2 : "+ EncodeColor(colorWhite)+RD2 + EncodeColor(colorGreen)+ "\n R1 : "+ EncodeColor(colorWhite)+RD1+ EncodeColor(colorGreen)+ "` Hi: "+ EncodeColor(colorWhite)+H + EncodeColor(colorBlue)+ "\n Pivot : "+ EncodeColor(colorWhite)+pd + EncodeColor(colorYellow)+ "` Op: "+ EncodeColor(colorWhite)+O+ EncodeColor(colorAqua)+ "Cl: "+ EncodeColor(colorBrightGreen)+C + EncodeColor(colorRed)+ "\n S1 : "+ EncodeColor(colorWhite)+SD1+ EncodeColor(colorRed)+ "` Lo: "+ EncodeColor(colorWhite)+L + EncodeColor(colorRed)+ "\n S2 : "+ EncodeColor(colorWhite)+SD2 + EncodeColor(colorRed)+ "\n S3 : "+ EncodeColor(colorWhite)+SD3 ; _SECTION_END(); _SECTION_BEGIN("RUTVOL SIGNAL LOGIC FROM "); /*RUTVOL SIGNAL LOGIC FROM .INI FILES EXPLAINATION: RUTVOL BASES THE FOLLOWING INDICATORS ON RUSSELL 2K INDEX. 1. STOCHASTICS 2. MACD 3. RSI CALCULATIONS BASED ON THE NASDAQ TVOLQ,UVOLQ,DVOLQ AS FOLLOWS 1. ACCUTRACK 2. STOCHASTICS TRANSLATED: 8/18/03 NOTE: THIS IS A MODIFIED VERSION OF RUTVOL. THIS VERSION PRODUCES MODESTLY BETTER RETURNS WITH SAME DD AS MEASURED AGAINST $RUT. BELOW ARE THE CHANGES NEED TO CONVERT TO ORIGINAL RUTVOL. 1. RUTTR_BUYCOND has no RSI filtering in the current RUTTR. 2. Current version of RUTVOL does not use the volume AccuTrak in the volume buy condition */ // STEP #1: ESTABLISH PARAMETERS RUT = Foreign("!RUT","C"); //STOCHASTICS AVERAGE = 53; //Optimize("AVERAGE",53,27,80,5); SMOOTH = 49; //Optimize("SMOOTH",49,25,74,5); TRIGGER = 28; //Optimize("TRIGGER",28,14,42,5); BuyVALUE = 0; SellVALUE = 0; //MACD ShortMA = 45; //Optimize("SHORTMA",45,23,90,5); LONGMA = 90; //Optimize("LONGMA",90,45,135,5); SignalMA = 8; //Optimize("SIGNALMA",8,4,12,1); BuyLEVEL = 0; SellLEVEL = 0; //RSI RSILEN = 14; //Optimize("RSILEN",14,7,21,1); BuyRSI = 63; SellRSI = 47; ShortRSI = 37; //VOLUME EMA VOLEMA1 = 60; //Optimize("VOLEMA1",60,30,90,5); VOLEMA2 = 120; //Optimize("VOLEMA2",120,60,180,5); //VOLUME ACCUTRACK ACCU_SHORTPERIOD = 11; //Optimize("ACCU_SHORTPERIOD",11,5,16,1); ACCU_LONGPERIOD = 44; //Optimize("ACCU_LONGPERIOD",44,22,66,3); //TOTAL VOLUME STOCH CALC TVOL_AVG = 41; //Optimize("TVOL AVG",41,22,66,2); TVOL_SMOOTH = 10; //Optimize("TVOL_SMOOTH",10,5,15,1); TVOL_TRIGGER = 8; //Optimize("TVOL_TRIGGER",8,4,12,1); //********RUTTR CALC*********// //STOCH CALC BEGIN KSTOCH = 100 * (RUT - LLV(RUT,AVERAGE)) / (HHV(RUT,AVERAGE) - LLV(RUT,AVERAGE)); DSTOCH = EMA(KSTOCH,SMOOTH); SignalLINE = EMA(DSTOCH,TRIGGER); STOCH_HISTO = DSTOCH - SignalLINE; //MACD CALC BEGIN RUTMACD = EMA(RUT,ShortMA) - EMA(RUT,LONGMA); MACDSignalLINE = EMA(RUTMACD, SignalMA); MACD_HISTO = RUTMACD - MACDSIGNALLINE; //RSI FILTER BEGIN RSIFILTER_SELL = RSIa(RUT,RSILEN) < Ref(RSIa(RUT,RSILEN),-3) AND RUT < Ref(RUT,-1) AND RSIa(RUT,RSILEN) < SellRSI; RSIFILTER_BUY = RSIa(RUT,RSILEN) > BuyRSI; //RUTTR SIGNAL LOGIC //STEP#1: BUY & SELL COND RUTTR_BUYCOND = (Stoch_HISTO > 0 AND MACD_HISTO > 0) OR RSIFILTER_BUY; RUTTR_SELLCOND = (Stoch_HISTO < 0 AND MACD_HISTO < 0) AND RSIFILTER_SELL; //STEP#2: BUY & SELL STATE RUTTR_BUYSTATE = Flip(RUTTR_BUYCOND,RUTTR_SELLCOND); //RUTTR_SELLSTATE = Flip(RUTTR_SELLCOND,RUTTR_BUYCOND); RUTTR_SELLSTATE = NOT RUTTR_BUYSTATE; //*********RUTVOL CALC*********// TVOLQ = Foreign("!NQ-V","C"); UVOLQ = Foreign("!NQ-AV","C"); DVOLQ = Foreign("!NQ-DV","C"); NQVOLEMA = EMA(TVOLQ,VOLEMA1); NQUVOLEMA = EMA(UVOLQ,VOLEMA2); NQDVOLEMA = EMA(DVOLQ,VOLEMA2); //ACCUTRACK CALC OF NQ UP/DN VOL UPVOLCHG = (NQUVOLEMA - Ref(NQUVOLEMA,-1)) / Ref(NQUVOLEMA,-1); DNVOLCHG = (NQDVOLEMA - Ref(NQDVOLEMA,-1)) / Ref(NQDVOLEMA,-1); UPVOL = EMA(UPVOLCHG, ACCU_LONGPERIOD); DNVOL = EMA(DNVOLCHG, ACCU_LONGPERIOD); VOL_DIFF = UPVOL - DNVOL; ACCU_UPDNVOL = EMA(VOL_DIFF,ACCU_SHORTPERIOD); ACCU_UPDNVOL_BUY = Cross(ACCU_UPDNVOL, 0); //ACCU_UPDNVOL_SELL = Cross(0, ACCU_UPDNVOL); // NASDAQ TOTAL VOLUME STOCHASTICS CALC NQVOL_KSTOCH = 100 * (NQVOLEMA - LLV(NQVOLEMA,TVOL_AVG)) / (HHV(NQVOLEMA,TVOL_AVG) - LLV(NQVOLEMA,TVOL_AVG)); NQVOL_DSTOCH = EMA(NQVOL_KSTOCH,TVOL_SMOOTH); NQVOL_SIGNALLINE = EMA(NQVOL_DSTOCH,TVOL_TRIGGER); TVOL_STOCH_BUYCOND = Cross(NQVOL_DSTOCH,20) OR Cross(NQVOL_DSTOCH,80) OR ACCU_UPDNVOL_BUY; TVOL_STOCH_SELLCOND = Cross(20, NQVOL_DSTOCH) OR Cross(80,NQVOL_DSTOCH); TVOL_STOCH_BUYSTATE = Flip(TVOL_STOCH_BUYCOND,TVOL_STOCH_SELLCOND); //*********RUTVOL SIGNAL LOGIC*********// //CONDITIONS RUTVOL_BUYCOND = TVOL_STOCH_BUYSTATE AND RUTTR_BUYSTATE; RUTVOL_SELLCOND = NOT TVOL_STOCH_BUYSTATE OR NOT RUTTR_BUYSTATE; //STATES RUTVOL_BUYSTATE = Flip(RUTVOL_BUYCOND,RUTVOL_SELLCOND); //SIGNALS Buy = RUTVOL_BUYSTATE; Sell = NOT RUTVOL_BUYSTATE; //EXREM SIGNALS Buy = ExRem(Buy,Sell); Sell = ExRem(Sell,Buy); ApplyStop(stopTypeLoss,stopModePercent,Optimize("MaxLoss",10,1,20,1),True,True); //-------------------------------------------------- PORTFOLIO TRADING CODE BEGINS ------------------------------------------------------------------ //Set Trade Delays and Initial Equity SetOption("InitialEquity", 100000); SetTradeDelays(1,1,1,1); RoundLotSize = 100; //Position Size Info SetOption("MinShares",100); MaxPos = Optimize("Max Positions",5,1,15,1); SetOption("MaxOpenPositions",MaxPos); PositionSize = -100/MaxPos; //Scoring Routine Begins BBandWid = 2; UBBand = BBandTop(Close, 21, BBandWid); LBBand = BBandBot(Close, 21, BBandWid); PositionScore = 100 - 100 * (Close - LBBand) / (UBBand - LBBand);//0 when C == Upper Band, 100 when C == Lower Band //********EXPLORE CODE*********// Filter = 1;//Status("LastBarInRange"); RUTVOLSIG = IIf(RUTVOL_BUYSTATE == 1,1,0); AddToComposite(RUTVOLSIG,"~RUTVOL","X",atcFlagDefaults | atcFlagEnableInExplore); AddColumn(RUTVOLSIG,"RUTVOL STATE",8.0); AddColumn(RUTTR_BUYSTATE,"RUTTR",8.0, IIf(RUTTR_BUYSTATE == 1,colorGreen,colorDefault), colorDefault); AddColumn(TVOL_STOCH_BUYSTATE,"VOLUME",8.0,IIf(TVOL_STOCH_BUYSTATE == 1,colorGreen,colorDefault), colorDefault); AddColumn(Buy,"RUTVOL BUY",8.0,colorDefault,IIf(Buy == 1,colorGreen,colorDefault)); AddColumn(Sell,"RUTVOL SELL",8.0,colorDefault,IIf(Sell == 1,colorYellow,colorDefault)); //*********INDICATOR CODE*********// Title = "RUTVOL: " + EncodeColor(colorBrightGreen) + "GREEN = BUY " + EncodeColor(colorYellow) + "YELLOW = CASH"; //Plot(0,"",colorLightGrey,styleNoLine+styleNoLabel); PlotShapes(IIf(Buy ==1, shapeUpArrow,shapeNone),colorBrightGreen,0,0,10); PlotShapes(IIf(Sell ==1, shapeHollowUpArrow,shapeNone),colorYellow,0,0,10); _SECTION_END();