Jump to content

Anyone Can Add BUY SELL definitions in AFL?


Recommended Posts

i want a messagebox into this Amibroker formula file if anyone can add :) Thanks in advance

 

 

 

_SECTION_BEGIN("PIVOT FINDER");

// /* **********************************

//

// Code to automatically identify pivots

//

// ********************************** */

//

// // -- what will be our lookback range for the hh and ll?

//

// farback=Param("How Far back to go",100,50,5000,10);

//

// nBars = Param("Number of bars", 12, 5, 40);

//

// // -- Title.

//

// Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ",

//

// H: " + High + ", L: " + Low + ", C: " + Close;

//

// // -- Plot basic candle chart

//

// PlotOHLC(Open, High, Low, Close,

//

// "BIdx = " + BarIndex() +

//

// "\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L

//

// + "\n"+"C ",

//

// colorBlack, styleCandle);

//

// GraphXSpace=7;

//

// // -- Create 0-initialized arrays the size of barcount

//

// aHPivs = H - H;

//

// aLPivs = L - L;

//

// // -- More for future use, not necessary for basic plotting

//

// aHPivHighs = H - H;

//

// aLPivLows = L - L;

//

// aHPivIdxs = H - H;

//

// aLPivIdxs = L - L;

//

// nHPivs = 0;

//

// nLPivs = 0;

//

// lastHPIdx = 0;

//

// lastLPIdx = 0;

//

// lastHPH = 0;

//

// lastLPL = 0;

//

// curPivBarIdx = 0;

//

// // -- looking back from the current bar, how many bars

//

// // back were the hhv and llv values of the previous

//

// // n bars, etc.?

//

// aHHVBars = HHVBars(H, nBars);

//

// aLLVBars = LLVBars(L, nBars);

//

// aHHV = HHV(H, nBars);

//

// aLLV = LLV(L, nBars);

//

// // -- Would like to set this up so pivots are calculated back from

//

// // last visible bar to make it easy to "go back" and see the pivots

//

// // this code would find. However, the first instance of

//

// // _Trace output will show a value of 0

//

// aVisBars = Status("barvisible");

//

// nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));

//

// _TRACE("Last visible bar: " + nLastVisBar);

//

// // -- Initialize value of curTrend

//

// curBar = (BarCount-1);

//

// curTrend = "";

//

// if (aLLVBars[curBar] <

//

// aHHVBars[curBar]) {

//

// curTrend = "D";

//

// }

//

// else {

//

// curTrend = "U";

//

// }

//

// // -- Loop through bars. Search for

//

// // entirely array-based approach

//

// // in future version

//

// for (i=0; i<farback; i++) {

//

// curBar = (BarCount - 1) - i;

//

// // -- Have we identified a pivot? If trend is down...

//

// if (aLLVBars[curBar] < aHHVBars[curBar]) {

//

// // ... and had been up, this is a trend change

//

// if (curTrend == "U") {

//

// curTrend = "D";

//

// // -- Capture pivot information

//

// curPivBarIdx = curBar - aLLVBars[curBar];

//

// aLPivs[curPivBarIdx] = 1;

//

// aLPivLows[nLPivs] = L[curPivBarIdx];

//

// aLPivIdxs[nLPivs] = curPivBarIdx;

//

// nLPivs++;

//

// }

//

// // -- or current trend is up

//

// } else {

//

// if (curTrend == "D") {

//

// curTrend = "U";

//

// curPivBarIdx = curBar - aHHVBars[curBar];

//

// aHPivs[curPivBarIdx] = 1;

//

// aHPivHighs[nHPivs] = H[curPivBarIdx];

//

// aHPivIdxs[nHPivs] = curPivBarIdx;

//

// nHPivs++;

//

// }

//

// // -- If curTrend is up...else...

//

// }

//

// // -- loop through bars

//

// }

//

// // -- Basic attempt to add a pivot this logic may have missed

//

// // -- OK, now I want to look at last two pivots. If the most

//

// // recent low pivot is after the last high, I could

//

// // still have a high pivot that I didn't catch

//

// // -- Start at last bar

//

// curBar = (BarCount-1);

//

// candIdx = 0;

//

// candPrc = 0;

//

// lastLPIdx = aLPivIdxs[0];

//

// lastLPL = aLPivLows[0];

//

// lastHPIdx = aHPivIdxs[0];

//

// lastHPH = aHPivHighs[0];

//

// if (lastLPIdx > lastHPIdx) {

//

// // -- Bar and price info for candidate pivot

//

// candIdx = curBar - aHHVBars[curBar];

//

// candPrc = aHHV[curBar];

//

// if (

//

// lastHPH < candPrc AND

//

// candIdx > lastLPIdx AND

//

// candIdx < curBar) {

//

// // -- OK, we'll add this as a pivot...

//

// aHPivs[candIdx] = 1;

//

// // ...and then rearrange elements in the

//

// // pivot information arrays

//

// for (j=0; j<nHPivs; j++) {

//

// aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-

//

// (j+1)];

//

// aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];

//

// }

//

// aHPivHighs[0] = candPrc ;

//

// aHPivIdxs[0] = candIdx;

//

// nHPivs++;

//

// }

//

// } else {

//

// // -- Bar and price info for candidate pivot

//

// candIdx = curBar - aLLVBars[curBar];

//

// candPrc = aLLV[curBar];

//

// if (

//

// lastLPL > candPrc AND

//

// candIdx > lastHPIdx AND

//

// candIdx < curBar) {

//

// // -- OK, we'll add this as a pivot...

//

// aLPivs[candIdx] = 1;

//

// // ...and then rearrange elements in the

//

// // pivot information arrays

//

// for (j=0; j<nLPivs; j++) {

//

// aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

//

// aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

//

// }

//

// aLPivLows[0] = candPrc;

//

// aLPivIdxs[0] = candIdx;

//

// nLPivs++;

//

// }

//

// }

//

// // -- Dump inventory of high pivots for debugging

//

// /*

//

// for (k=0; k<nHPivs; k++) {

//

// _TRACE("High pivot no. " + k

//

// + " at barindex: " + aHPivIdxs[k] + ", "

//

// + WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k],

//

// DateTime(), 1), formatDateTime)

//

// + ", " + aHPivHighs[k]);

//

// }

//

// */

//

// // -- OK, let's plot the pivots using arrows

//

// PlotShapes(

//

// IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0,

//

// High, Offset=-15);

//

// PlotShapes(

//

// IIf(aLPivs==1, shapeUpArrow , shapeNone), colorGreen, 0,

//

// Low, Offset=-15);

//

//------------------------------------------------------------------------------

 

/* **********************************

 

Code to automatically identify pivots

 

********************************** */

 

// -- what will be our lookback range for the hh and ll?

farback=Param("How Far back to go",100,50,5000,10);

nBars = Param("Number of bars", 12, 5, 40);

 

// -- Title.

 

Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ",

 

H: " + High + ", L: " + Low + ", C: " + Close;

 

// -- Plot basic candle chart

 

PlotOHLC(Open, High, Low, Close,

 

"BIdx = " + BarIndex() +

 

"\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L

 

+ "\n"+"C ",

 

colorBlack, styleCandle);

 

GraphXSpace=7;

 

// -- Create 0-initialized arrays the size of barcount

 

aHPivs = H - H;

 

aLPivs = L - L;

 

// -- More for future use, not necessary for basic plotting

 

aHPivHighs = H - H;

 

aLPivLows = L - L;

 

aHPivIdxs = H - H;

 

aLPivIdxs = L - L;

 

nHPivs = 0;

 

nLPivs = 0;

 

lastHPIdx = 0;

 

lastLPIdx = 0;

 

lastHPH = 0;

 

lastLPL = 0;

 

curPivBarIdx = 0;

 

// -- looking back from the current bar, how many bars

 

// back were the hhv and llv values of the previous

 

// n bars, etc.?

 

aHHVBars = HHVBars(H, nBars);

 

aLLVBars = LLVBars(L, nBars);

 

aHHV = HHV(H, nBars);

 

aLLV = LLV(L, nBars);

 

// -- Would like to set this up so pivots are calculated back from

 

// last visible bar to make it easy to "go back" and see the pivots

 

// this code would find. However, the first instance of

 

// _Trace output will show a value of 0

 

aVisBars = Status("barvisible");

 

nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));

 

_TRACE("Last visible bar: " + nLastVisBar);

 

// -- Initialize value of curTrend

 

curBar = (BarCount-1);

 

curTrend = "";

 

if (aLLVBars[curBar] <

 

aHHVBars[curBar]) {

 

curTrend = "D";

 

}

 

else {

 

curTrend = "U";

 

}

 

// -- Loop through bars. Search for

 

// entirely array-based approach

 

// in future version

 

for (i=0; i<farback; i++) {

 

curBar = (BarCount - 1) - i;

 

// -- Have we identified a pivot? If trend is down...

 

if (aLLVBars[curBar] < aHHVBars[curBar]) {

 

// ... and had been up, this is a trend change

 

if (curTrend == "U") {

 

curTrend = "D";

 

// -- Capture pivot information

 

curPivBarIdx = curBar - aLLVBars[curBar];

 

aLPivs[curPivBarIdx] = 1;

 

aLPivLows[nLPivs] = L[curPivBarIdx];

 

aLPivIdxs[nLPivs] = curPivBarIdx;

 

nLPivs++;

 

}

 

// -- or current trend is up

 

} else {

 

if (curTrend == "D") {

 

curTrend = "U";

 

curPivBarIdx = curBar - aHHVBars[curBar];

 

aHPivs[curPivBarIdx] = 1;

 

aHPivHighs[nHPivs] = H[curPivBarIdx];

 

aHPivIdxs[nHPivs] = curPivBarIdx;

 

nHPivs++;

 

}

 

// -- If curTrend is up...else...

 

}

 

// -- loop through bars

 

}

 

// -- Basic attempt to add a pivot this logic may have missed

 

// -- OK, now I want to look at last two pivots. If the most

 

// recent low pivot is after the last high, I could

 

// still have a high pivot that I didn't catch

 

// -- Start at last bar

 

curBar = (BarCount-1);

 

candIdx = 0;

 

candPrc = 0;

 

lastLPIdx = aLPivIdxs[0];

 

lastLPL = aLPivLows[0];

 

lastHPIdx = aHPivIdxs[0];

 

lastHPH = aHPivHighs[0];

 

if (lastLPIdx > lastHPIdx) {

 

// -- Bar and price info for candidate pivot

 

candIdx = curBar - aHHVBars[curBar];

 

candPrc = aHHV[curBar];

 

if (

 

lastHPH < candPrc AND

 

candIdx > lastLPIdx AND

 

candIdx < curBar) {

 

 

// -- OK, we'll add this as a pivot...

 

aHPivs[candIdx] = 1;

 

// ...and then rearrange elements in the

 

// pivot information arrays

 

for (j=0; j<nHPivs; j++) {

 

aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-

 

(j+1)];

 

aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];

 

}

 

aHPivHighs[0] = candPrc ;

 

aHPivIdxs[0] = candIdx;

 

nHPivs++;

 

}

 

} else {

 

 

// -- Bar and price info for candidate pivot

 

candIdx = curBar - aLLVBars[curBar];

 

candPrc = aLLV[curBar];

 

if (

 

lastLPL > candPrc AND

 

candIdx > lastHPIdx AND

 

candIdx < curBar) {

 

 

// -- OK, we'll add this as a pivot...

 

aLPivs[candIdx] = 1;

 

// ...and then rearrange elements in the

 

// pivot information arrays

 

for (j=0; j<nLPivs; j++) {

 

aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

 

aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

 

}

 

aLPivLows[0] = candPrc;

 

aLPivIdxs[0] = candIdx;

 

nLPivs++;

 

}

 

}

 

// -- Dump inventory of high pivots for debugging

 

/*

 

for (k=0; k<nHPivs; k++) {

 

_TRACE("High pivot no. " + k

 

+ " at barindex: " + aHPivIdxs[k] + ", "

 

+ WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k],

 

DateTime(), 1), formatDateTime)

 

+ ", " + aHPivHighs[k]);

 

}

 

*/

 

// -- OK, let's plot the pivots using arrows

 

PlotShapes(

 

IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0,

 

High, Offset=-15);

 

PlotShapes(

 

IIf(aLPivs==1, shapeUpArrow , shapeNone), colorGreen, 0,

 

Low, Offset=-15);

 

_SECTION_END();

Link to comment
Share on other sites

u can add this formula for message box to any afl

 

Cover=Buy;
Short=Sell;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
AlertIf( Buy, "", "BUY @ " + C, 1 );
AlertIf( Sell, "", "SELL @ " + C, 2 );
no=Param( "Swing", 8, 1, 55 );
tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
tsl=IIf(avn==1,sup,res);

no =  Optimize("TSL",Param("A (Change To Optimise)",10, 1, 55 ,1),1, 55 ,1);

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avn==1,sup,res);
SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));


CloseAtEnd = ParamToggle("Close Positions EOD", "No|Yes");
stopreverse =ParamToggle("Switch To Stop And Reverse","No|Yes",0);
Trend = ATR(21) < StDev (C,21);
Range = ATR(21) > StDev (C,21);
no=10;
C13=20;
C14=2.1;
C15=12;

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avn==1,sup,res);

SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));
buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar1, 0);
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar2 , 0);
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar3, 0);

sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar1 , 0);
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar2, 0);
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar3, 0);



//Settings for exploration

Filter=Buy OR Short;
AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) );
AddColumn(Close,"Entry Price",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(dtsl,"Stop Loss",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar1,"Target 1",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar2,"Target 2",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar3,"Target 3",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorBlue,colorYellow));




//Short = Sell;
//Cover = Buy;

//Short = ExRem(Short, Cover);
//Cover = ExRem(Cover, Short);

GraphXSpace = 5;
pxHeight = Status( "pxchartheight" ) ;
xx = Status( "pxchartwidth");
Left = 1100;
width = 310;
x = 5;
x2 = 280;

y = pxHeight; 
dist = 2*ATR(10);
dist1 = 3*ATR(10);
i=BarCount; 
bars = i;

messageboard = ParamToggle("Message Board","Show|Hide",1);
if(messageboard)
{
for( i = 0; i < BarCount; i++ )
{
   if( Buy[i] )
   {
       // PlotText( "\nBuy:" + L[ i ] + "\nT= " + (L[i]*1.005) + "\nSL= " + (L[i]*0.9975), i, L[ i ]-dist[i], colorGreen, colorWhite );
       
       // Signal Display Panel //

      SellPrice=ValueWhen(Sell,C,1);
      BuyPrice=ValueWhen(Buy,L[ i ]);
      Long=Flip(Buy,Sell);
       Shrt=Flip(Sell,Buy );
       BuyStop2 = L[i]*0.9975;
       BuyTP1 = L[i]*1.070;
       BuyTP2 = L[i]*1.050;
       BuyTP3 = L[i]*1.035;
buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP3, 0);
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP2, 0);
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP1, 0);
       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetOverlayMode( mode = 0 );
       GfxSelectPen( colorBrightGreen, 3 );
       GfxSelectSolidBrush( colorBrightGreen);
       GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;
      GfxSetTextColor( colorGold );        
      GfxTextOut( ( " Trading System "),73,y-165);
       GfxTextOut( (" "),27,y-160);
       GfxSetBkMode(1);
       GfxSelectFont( "Arial", 10, 700, False );
       GfxSetTextColor( colorBlue );
       GfxSetTextAlign(0);
       GfxSelectFont( "Tahoma", 13, 100 );

  GfxTextOut( WriteIf(L[ i ], "Buy Above: "+L[ i ],""), 13, y-140);
  GfxSetTextColor( colorGold );    
  GfxTextOut( WriteIf(BuyStop2, "Long SL: "+(BuyStop2),""), 13, y-120);
  GfxSetTextColor( colorWhite );    
  GfxTextOut( WriteIf(BuyTP1, "Buy TGT1: "+(BuyTP3),""), 13,y- 100);
  GfxTextOut( WriteIf(BuyTP2, "Buy TGT2: "+(BuyTP2),""), 13,y- 80); 
  GfxTextOut( WriteIf(BuyTP3, "BuyTGT3: "+(BuyTP1),""), 13,y- 60);   
  GfxSetTextColor( colorViolet );    
  GfxTextOut( ("Current P/L : " + WriteVal(IIf(Buy ,(C-BuyPrice),(C-BuyPrice)),2.2)), 88, y-22);
 GfxTextOut( ("Buy  Signal came " + (BarCount-bars +1) * Interval()/2 + " mins ago"), 13, y-40) ;   
GfxTextOut
( ("" + WriteIf (buyach1, " Done: "+BuyTP3,"")), 160, y-100);
GfxTextOut
( ("" + WriteIf (buyach2, " Done: "+BuyTP2,"")), 160, y-80);
GfxTextOut
( ("" + WriteIf (buyach3, " Done: "+BuyTP1,"")), 160, y-60);        
       // END of Signal Display Panel //
   }
   if( Sell[i] )
   {
       // PlotText( "Sell:" + H[ i ] + "\nT= " + (H[i]*0.995) + "\nSL= " + (H[i]*1.0025), i, H[ i ]+dist1[i], colorRed, colorWhite );
       
       // Signal Display Panel //
       SellPrice=ValueWhen(Sell,C,1);
BuyPrice=ValueWhen(Buy,H[ i ]);
Long=Flip(Buy,Sell);
Shrt=Flip(Sell,Buy );
      SellStop2 = H[i]*1.0025;
       SellTP1 = H[i]*0.978;
       SellTP2 = H[i]*0.982;
       SellTP3 = H[i]*0.988;
sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP3 , 0);
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP2, 0);
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP1, 0);

       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetOverlayMode( mode = 0 );
       GfxSelectPen( colorRed, 3 );
       GfxSelectSolidBrush( colorRed );
        GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;
       
       GfxTextOut( (" "),27,y-160);
       GfxSetBkMode(1);
       GfxSelectFont( "Arial", 10, 700, False );
       GfxSetTextColor( colorWhite );
       GfxSetTextAlign(0);
       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetTextColor( colorGold );      
       GfxTextOut( ( " Trading System "),73,y-165);
       GfxSetTextColor( colorWhite ); 
      GfxTextOut( WriteIf(H[ i ], "Sell Below: "+H[ i ],""), 13, y-140);
      GfxSetTextColor( colorGold );     
      GfxTextOut( WriteIf(SellStop2, "Short SL: "+(SellStop2),""), 13, y-120);     
      GfxSetTextColor( colorBlue );   
      GfxTextOut( WriteIf(SellTP1, "Short TGT1: "+(SellTP3),""), 13, y-100);
      GfxTextOut( WriteIf(SellTP2, "Short TGT2: "+(SellTP2),""), 13, y-80);
      GfxTextOut( WriteIf(SellTP3, "Short TGT3: "+(SellTP1),""), 13, y-60);
      GfxSetTextColor( colorGold );
      GfxTextOut( ("Current P/L : " + WriteVal(IIf(Sell ,(SellPrice-C),(SellPrice-C)),2.2)), 88, y-22);
       GfxTextOut( ("sell Signal came " + (BarCount-bars +1) * Interval()/2 + " mins ago"), 13, y-40) ;    
      GfxTextOut
( ("" + WriteIf (sellach1, "  Done: "+SellTP3,"")), 160, y-100);
GfxTextOut
( ("" + WriteIf (sellach2, "  Done: "+SellTP2,"")), 160, y-80);
GfxTextOut
( ("" + WriteIf (sellach3, "  Done: "+SellTP1,"")), 160, y-60);
// END of Signal Display Panel //
   }}}



Long=Flip(Buy,Sell); 
Shrt=Flip(Sell,Buy); 

BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);


Edc=(
WriteIf (Buy AND Ref(shrt,-1), " BUY @ "+C+"  ","")+ 
WriteIf (Sell AND Ref(Long,-1), " SEll @ "+C+"  ","")+
WriteIf(Sell , "Last Trade Profit Rs."+(C-BuyPrice)+"","")+
WriteIf(Buy  , "Last Trade Profit Rs."+(SellPrice-C)+"",""));

//============== TITLE ==============
_SECTION_BEGIN("Title");
no=Param( "Swing", 6, 1, 55 );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
tsl=IIf(avn==1,sup,res);
dec = (Param("Decimals",2,0,7,1)/10)+1;
if( Status("action") == actionIndicator ) 
(
Title = EncodeColor(55)+  Title = Name() + "     " + EncodeColor(32) + Date() +
"      " + EncodeColor(5) + "{{INTERVAL}}  " +
EncodeColor(55)+ "     Open = "+ EncodeColor(52)+ WriteVal(O,dec) + 
EncodeColor(55)+ "     High = "+ EncodeColor(5) + WriteVal(H,dec) +
EncodeColor(55)+ "      Low = "+ EncodeColor(32)+ WriteVal(L,dec) + 
EncodeColor(55)+ "    Close = "+ EncodeColor(52)+ WriteVal(C,dec)+
EncodeColor(55)+ "    Volume = "+ EncodeColor(52)+ WriteVal (V ,1.25)




+"\n"+EncodeColor(colorBrightGreen)+

WriteIf (Buy , "Signal: Go Long - Entry Price: "+WriteVal(C)+" - Traget: "+WriteVal((BuyPrice-tsl)+BuyPrice)

+" - StopLoss:"+WriteVal(tsl)+"  "

,"")+

"\n"+EncodeColor(colorRed)+
WriteIf (Sell , "Signal: Go Short - Entry Price: "+WriteVal(C)+" - Target: "+WriteVal((tsl-SellPrice)-SellPrice)+" - StopLoss:"+WriteVal(tsl)+" ","")+
EncodeColor(colorTurquoise)+
WriteIf(Long AND NOT Buy, "Trade: Long - Entry Price: "+WriteVal((BuyPrice))+" - Profit: "+WriteVal((C-BuyPrice))+" "+EncodeColor(colorLime)+"Let your profit runs!","")+
EncodeColor(colorLightOrange)+
WriteIf(shrt AND NOT Sell, "Trade: Short - Entry Price: "+WriteVal((SellPrice))+" - Profit: "+WriteVal((SellPrice-C))+"  - "+EncodeColor(colorLime)+"Let your profit runs!","")


);
_SECTION_END();


if (messageboard == 0 )
{
if( Status("action") == actionIndicator ) 
(

Title = EncodeColor(55)+  Title = Name() +
"      " + EncodeColor(5) + "{{INTERVAL}}  " + EncodeColor(colorSkyblue) +
"   " + Date() +"  "+"\n" +EncodeColor(55) +"Open-"+EncodeColor(52)+O+EncodeColor(55)+" High-"+EncodeColor(5)+H+"  "+EncodeColor(55)+"Low-"+EncodeColor(32)+L+"  "+EncodeColor(55)+"Close-"+EncodeColor(52)+C+"  "+EncodeColor(55)+ "Volume= "+EncodeColor(52)+ WriteVal(V)+"\n"+"\n"+ 

EncodeColor(colorLime)+
WriteIf (Buy, "Action: Go Long At "+C+" - SL " +DTSL,"")+
WriteIf (Short, "Action: Go Short At "+C+" - SL " +DTSL,"")+
WriteIf(Long AND NOT Buy, "Action : Long Taken At "+(BuyPrice)+" - Trail SL @ " + DTSL + "","")+
WriteIf(shrt AND NOT Sell, "Action : Short Taken At "+(SellPrice)+" - Trail SL @ " + DTSL + "","")+
WriteIf (Sell AND NOT Short, "Exit Long At "+C,"")+
WriteIf (Cover AND NOT Buy, "Exit Short At "+C,"")+
WriteIf(NOT Long AND NOT Buy AND NOT shrt AND NOT Sell, "Action: Not In A Trade - RELAX!!!","")+"\n"+ 
WriteIf(Long AND NOT Buy, "Profit/Loss: "+(C-BuyPrice)+" Points","")+
WriteIf(shrt AND NOT Sell, "Profit/Loss: "+(SellPrice-C)+" Points","")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 1: "+tar1,"")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 2: "+tar2,"")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 3: "+tar3,"")+"\n"+
WriteIf(buyach1, "Target 1 Done: "+tar1,"")+
WriteIf(sellach1, "Target 1 Done: "+tar1,"")+"\n"+
WriteIf(buyach2, "Target 2 Done: "+tar2,"")+
WriteIf(sellach2, "Target 2 Done: "+tar2,"")+"\n"+
WriteIf(buyach3, "Target 3 Done: "+tar3,"")+
WriteIf(sellach3, "Target 3 Done: "+tar3,""));
}
for( i = 0; i < BarCount; i++ )
{
if( Buy[i] )
{

OUTcolor = ParamColor("Outer Panel Color",colorTeal);
INUPcolor = ParamColor("Inner Panel Upper",colorDarkGrey);
INDNcolor = ParamColor("Inner Panel Lower",colorDarkOliveGreen);
TitleColor = ParamColor("Title Color ",colorBlack);
SetChartBkColor(OUTcolor); // color of outer border
SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
}
if( Sell[i] )
{
OUTcolor = ParamColor("Outer Panel Color",colorTeal);
INUPcolor = ParamColor("Inner Panel Upper2",colorDarkTeal);
INDNcolor = ParamColor("Inner Panel Lower2",colorPlum);
TitleColor = ParamColor("Title Color ",colorBlack);
SetChartBkColor(OUTcolor); // color of outer border
SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
}
}

 

 

 

but what are your buy/sell conditions ?

 

pivots cant be your buy/sell point ...its future looking...

Edited by tamarind
Link to comment
Share on other sites

u can add this formula for message box to any afl

 

Cover=Buy;
Short=Sell;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
AlertIf( Buy, "", "BUY @ " + C, 1 );
AlertIf( Sell, "", "SELL @ " + C, 2 );
no=Param( "Swing", 8, 1, 55 );
tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
tsl=IIf(avn==1,sup,res);

no =  Optimize("TSL",Param("A (Change To Optimise)",10, 1, 55 ,1),1, 55 ,1);

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avn==1,sup,res);
SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));


CloseAtEnd = ParamToggle("Close Positions EOD", "No|Yes");
stopreverse =ParamToggle("Switch To Stop And Reverse","No|Yes",0);
Trend = ATR(21) < StDev (C,21);
Range = ATR(21) > StDev (C,21);
no=10;
C13=20;
C14=2.1;
C15=12;

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avn==1,sup,res);

SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));
buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar1, 0);
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar2 , 0);
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar3, 0);

sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar1 , 0);
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar2, 0);
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar3, 0);



//Settings for exploration

Filter=Buy OR Short;
AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) );
AddColumn(Close,"Entry Price",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(dtsl,"Stop Loss",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar1,"Target 1",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar2,"Target 2",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(tar3,"Target 3",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorBlue,colorYellow));




//Short = Sell;
//Cover = Buy;

//Short = ExRem(Short, Cover);
//Cover = ExRem(Cover, Short);

GraphXSpace = 5;
pxHeight = Status( "pxchartheight" ) ;
xx = Status( "pxchartwidth");
Left = 1100;
width = 310;
x = 5;
x2 = 280;

y = pxHeight; 
dist = 2*ATR(10);
dist1 = 3*ATR(10);
i=BarCount; 
bars = i;

messageboard = ParamToggle("Message Board","Show|Hide",1);
if(messageboard)
{
for( i = 0; i < BarCount; i++ )
{
   if( Buy[i] )
   {
       // PlotText( "\nBuy:" + L[ i ] + "\nT= " + (L[i]*1.005) + "\nSL= " + (L[i]*0.9975), i, L[ i ]-dist[i], colorGreen, colorWhite );
       
       // Signal Display Panel //

      SellPrice=ValueWhen(Sell,C,1);
      BuyPrice=ValueWhen(Buy,L[ i ]);
      Long=Flip(Buy,Sell);
       Shrt=Flip(Sell,Buy );
       BuyStop2 = L[i]*0.9975;
       BuyTP1 = L[i]*1.070;
       BuyTP2 = L[i]*1.050;
       BuyTP3 = L[i]*1.035;
buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP3, 0);
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP2, 0);
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > BuyTP1, 0);
       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetOverlayMode( mode = 0 );
       GfxSelectPen( colorBrightGreen, 3 );
       GfxSelectSolidBrush( colorBrightGreen);
       GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;
      GfxSetTextColor( colorGold );        
      GfxTextOut( ( " Trading System "),73,y-165);
       GfxTextOut( (" "),27,y-160);
       GfxSetBkMode(1);
       GfxSelectFont( "Arial", 10, 700, False );
       GfxSetTextColor( colorBlue );
       GfxSetTextAlign(0);
       GfxSelectFont( "Tahoma", 13, 100 );

  GfxTextOut( WriteIf(L[ i ], "Buy Above: "+L[ i ],""), 13, y-140);
  GfxSetTextColor( colorGold );    
  GfxTextOut( WriteIf(BuyStop2, "Long SL: "+(BuyStop2),""), 13, y-120);
  GfxSetTextColor( colorWhite );    
  GfxTextOut( WriteIf(BuyTP1, "Buy TGT1: "+(BuyTP3),""), 13,y- 100);
  GfxTextOut( WriteIf(BuyTP2, "Buy TGT2: "+(BuyTP2),""), 13,y- 80); 
  GfxTextOut( WriteIf(BuyTP3, "BuyTGT3: "+(BuyTP1),""), 13,y- 60);   
  GfxSetTextColor( colorViolet );    
  GfxTextOut( ("Current P/L : " + WriteVal(IIf(Buy ,(C-BuyPrice),(C-BuyPrice)),2.2)), 88, y-22);
 GfxTextOut( ("Buy  Signal came " + (BarCount-bars +1) * Interval()/2 + " mins ago"), 13, y-40) ;   
GfxTextOut
( ("" + WriteIf (buyach1, " Done: "+BuyTP3,"")), 160, y-100);
GfxTextOut
( ("" + WriteIf (buyach2, " Done: "+BuyTP2,"")), 160, y-80);
GfxTextOut
( ("" + WriteIf (buyach3, " Done: "+BuyTP1,"")), 160, y-60);        
       // END of Signal Display Panel //
   }
   if( Sell[i] )
   {
       // PlotText( "Sell:" + H[ i ] + "\nT= " + (H[i]*0.995) + "\nSL= " + (H[i]*1.0025), i, H[ i ]+dist1[i], colorRed, colorWhite );
       
       // Signal Display Panel //
       SellPrice=ValueWhen(Sell,C,1);
BuyPrice=ValueWhen(Buy,H[ i ]);
Long=Flip(Buy,Sell);
Shrt=Flip(Sell,Buy );
      SellStop2 = H[i]*1.0025;
       SellTP1 = H[i]*0.978;
       SellTP2 = H[i]*0.982;
       SellTP3 = H[i]*0.988;
sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP3 , 0);
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP2, 0);
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < SellTP1, 0);

       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetOverlayMode( mode = 0 );
       GfxSelectPen( colorRed, 3 );
       GfxSelectSolidBrush( colorRed );
        GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;
       
       GfxTextOut( (" "),27,y-160);
       GfxSetBkMode(1);
       GfxSelectFont( "Arial", 10, 700, False );
       GfxSetTextColor( colorWhite );
       GfxSetTextAlign(0);
       GfxSelectFont( "Tahoma", 13, 100 );
       GfxSetTextColor( colorGold );      
       GfxTextOut( ( " Trading System "),73,y-165);
       GfxSetTextColor( colorWhite ); 
      GfxTextOut( WriteIf(H[ i ], "Sell Below: "+H[ i ],""), 13, y-140);
      GfxSetTextColor( colorGold );     
      GfxTextOut( WriteIf(SellStop2, "Short SL: "+(SellStop2),""), 13, y-120);     
      GfxSetTextColor( colorBlue );   
      GfxTextOut( WriteIf(SellTP1, "Short TGT1: "+(SellTP3),""), 13, y-100);
      GfxTextOut( WriteIf(SellTP2, "Short TGT2: "+(SellTP2),""), 13, y-80);
      GfxTextOut( WriteIf(SellTP3, "Short TGT3: "+(SellTP1),""), 13, y-60);
      GfxSetTextColor( colorGold );
      GfxTextOut( ("Current P/L : " + WriteVal(IIf(Sell ,(SellPrice-C),(SellPrice-C)),2.2)), 88, y-22);
       GfxTextOut( ("sell Signal came " + (BarCount-bars +1) * Interval()/2 + " mins ago"), 13, y-40) ;    
      GfxTextOut
( ("" + WriteIf (sellach1, "  Done: "+SellTP3,"")), 160, y-100);
GfxTextOut
( ("" + WriteIf (sellach2, "  Done: "+SellTP2,"")), 160, y-80);
GfxTextOut
( ("" + WriteIf (sellach3, "  Done: "+SellTP1,"")), 160, y-60);
// END of Signal Display Panel //
   }}}



Long=Flip(Buy,Sell); 
Shrt=Flip(Sell,Buy); 

BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);


Edc=(
WriteIf (Buy AND Ref(shrt,-1), " BUY @ "+C+"  ","")+ 
WriteIf (Sell AND Ref(Long,-1), " SEll @ "+C+"  ","")+
WriteIf(Sell , "Last Trade Profit Rs."+(C-BuyPrice)+"","")+
WriteIf(Buy  , "Last Trade Profit Rs."+(SellPrice-C)+"",""));

//============== TITLE ==============
_SECTION_BEGIN("Title");
no=Param( "Swing", 6, 1, 55 );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
tsl=IIf(avn==1,sup,res);
dec = (Param("Decimals",2,0,7,1)/10)+1;
if( Status("action") == actionIndicator ) 
(
Title = EncodeColor(55)+  Title = Name() + "     " + EncodeColor(32) + Date() +
"      " + EncodeColor(5) + "{{INTERVAL}}  " +
EncodeColor(55)+ "     Open = "+ EncodeColor(52)+ WriteVal(O,dec) + 
EncodeColor(55)+ "     High = "+ EncodeColor(5) + WriteVal(H,dec) +
EncodeColor(55)+ "      Low = "+ EncodeColor(32)+ WriteVal(L,dec) + 
EncodeColor(55)+ "    Close = "+ EncodeColor(52)+ WriteVal(C,dec)+
EncodeColor(55)+ "    Volume = "+ EncodeColor(52)+ WriteVal (V ,1.25)




+"\n"+EncodeColor(colorBrightGreen)+

WriteIf (Buy , "Signal: Go Long - Entry Price: "+WriteVal(C)+" - Traget: "+WriteVal((BuyPrice-tsl)+BuyPrice)

+" - StopLoss:"+WriteVal(tsl)+"  "

,"")+

"\n"+EncodeColor(colorRed)+
WriteIf (Sell , "Signal: Go Short - Entry Price: "+WriteVal(C)+" - Target: "+WriteVal((tsl-SellPrice)-SellPrice)+" - StopLoss:"+WriteVal(tsl)+" ","")+
EncodeColor(colorTurquoise)+
WriteIf(Long AND NOT Buy, "Trade: Long - Entry Price: "+WriteVal((BuyPrice))+" - Profit: "+WriteVal((C-BuyPrice))+" "+EncodeColor(colorLime)+"Let your profit runs!","")+
EncodeColor(colorLightOrange)+
WriteIf(shrt AND NOT Sell, "Trade: Short - Entry Price: "+WriteVal((SellPrice))+" - Profit: "+WriteVal((SellPrice-C))+"  - "+EncodeColor(colorLime)+"Let your profit runs!","")


);
_SECTION_END();


if (messageboard == 0 )
{
if( Status("action") == actionIndicator ) 
(

Title = EncodeColor(55)+  Title = Name() +
"      " + EncodeColor(5) + "{{INTERVAL}}  " + EncodeColor(colorSkyblue) +
"   " + Date() +"  "+"\n" +EncodeColor(55) +"Open-"+EncodeColor(52)+O+EncodeColor(55)+" High-"+EncodeColor(5)+H+"  "+EncodeColor(55)+"Low-"+EncodeColor(32)+L+"  "+EncodeColor(55)+"Close-"+EncodeColor(52)+C+"  "+EncodeColor(55)+ "Volume= "+EncodeColor(52)+ WriteVal(V)+"\n"+"\n"+ 

EncodeColor(colorLime)+
WriteIf (Buy, "Action: Go Long At "+C+" - SL " +DTSL,"")+
WriteIf (Short, "Action: Go Short At "+C+" - SL " +DTSL,"")+
WriteIf(Long AND NOT Buy, "Action : Long Taken At "+(BuyPrice)+" - Trail SL @ " + DTSL + "","")+
WriteIf(shrt AND NOT Sell, "Action : Short Taken At "+(SellPrice)+" - Trail SL @ " + DTSL + "","")+
WriteIf (Sell AND NOT Short, "Exit Long At "+C,"")+
WriteIf (Cover AND NOT Buy, "Exit Short At "+C,"")+
WriteIf(NOT Long AND NOT Buy AND NOT shrt AND NOT Sell, "Action: Not In A Trade - RELAX!!!","")+"\n"+ 
WriteIf(Long AND NOT Buy, "Profit/Loss: "+(C-BuyPrice)+" Points","")+
WriteIf(shrt AND NOT Sell, "Profit/Loss: "+(SellPrice-C)+" Points","")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 1: "+tar1,"")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 2: "+tar2,"")+"\n"+
WriteIf(Long OR Buy OR Shrt OR Short, "Target 3: "+tar3,"")+"\n"+
WriteIf(buyach1, "Target 1 Done: "+tar1,"")+
WriteIf(sellach1, "Target 1 Done: "+tar1,"")+"\n"+
WriteIf(buyach2, "Target 2 Done: "+tar2,"")+
WriteIf(sellach2, "Target 2 Done: "+tar2,"")+"\n"+
WriteIf(buyach3, "Target 3 Done: "+tar3,"")+
WriteIf(sellach3, "Target 3 Done: "+tar3,""));
}
for( i = 0; i < BarCount; i++ )
{
if( Buy[i] )
{

OUTcolor = ParamColor("Outer Panel Color",colorTeal);
INUPcolor = ParamColor("Inner Panel Upper",colorDarkGrey);
INDNcolor = ParamColor("Inner Panel Lower",colorDarkOliveGreen);
TitleColor = ParamColor("Title Color ",colorBlack);
SetChartBkColor(OUTcolor); // color of outer border
SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
}
if( Sell[i] )
{
OUTcolor = ParamColor("Outer Panel Color",colorTeal);
INUPcolor = ParamColor("Inner Panel Upper2",colorDarkTeal);
INDNcolor = ParamColor("Inner Panel Lower2",colorPlum);
TitleColor = ParamColor("Title Color ",colorBlack);
SetChartBkColor(OUTcolor); // color of outer border
SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
}
}

 

 

 

but what are your buy/sell conditions ?

 

pivots cant be your buy/sell point ...its future looking...

 

 

ohh ok, Thanks..

 

can you add this msg box in that afl,

cause i don't know how to do that?

Link to comment
Share on other sites

can you add this msg box in that afl

 

it will be of no use unless you have specific buy/sell condition...you will not be able to apply/use the modified afl

 

cause i don't know how to do that?

click formula editor (hammer like icon) - paste any of your afl - scroll down to the end - now copy and paste the message box formula and your done. Now click 'apply indicator' button.

Link to comment
Share on other sites

hello bro.

i have tried what you said..

 

but its giving error :(

 

anyways i have another afl code can you remove errors in from it?

 

 

 

 

_SECTION_BEGIN("Chart");

SetChartBkGradientFill( ParamColor("BgTop", colorBlack),

ParamColor("BgBottom", ColorRGB( 146,146,146 )),ParamColor("titleblock",colorBlack));

SetChartOptions(0,chartShowArrows|chartShowDates);

_SECTION_END();

_SECTION_BEGIN("TREND");

iCandle=ParamList("Trigger Candle","First|Second",1);

CallType=ParamList("Call Type","Ultimate|Best|Good|Fast");

gap=Param("Repeat Calls Distance",0.01,0,10000,0.01);

T1P=Param("First TGT",0.004,0.0001,0.1,0.001);

T2P=Param("Second TGT",0.008,0.0001,0.1,0.001);

T3P=Param("Third TGT",0.012,0.0001,0.1,0.001);

 

rt=ZeroStopLoss();

 

Plot(supres,"Swing",colorBlue,styleLine);

 

dist = 1.5*ATR(10);

PlotShapes(IIf(Buys, shapeUpArrow, shapeNone),colorGreen, 0,L,-10*dist);

PlotShapes(IIf(Sells, shapeDownArrow, shapeNone),colorRed, 0,H,-10*dist);

PlotShapes(IIf(Buyr,shapeDigit0,shapeNone),colorGreen,0,L,-10);

PlotShapes(IIf(Sellr,shapeDigit0,shapeNone),colorRed,0,H,10);

 

Buy=Buys OR Buyr;

Sell=Sells OR Sellr;

Short=Sell;

Cover=Buy;

 

function SayOnce( text )

{

if(StaticVarGetText(Name() + "lastsaidtext") != text )

{

Say( text );

StaticVarSetText(Name() + "lastsaidtext", text ) ;

}

}

 

dist = 1*ATR(20);

dist1 = 2*ATR(20);

for( i = 0; i < BarCount; i++ )

{

if( Buys ) PlotText( " B " + L[ i ], i, L[ i ], colorGreen, colorWhite );

if( Sells ) PlotText( " S " + H[ i], i, H[ i ], colorRed, colorWhite );

}

_SECTION_END();

 

Offset = 20;

Clr = IIf(sig == "BUY", colorGreen, colorRed);

 

for (i=bars; i <BarCount;i++)

{

PlotText(""+sig+"@"+entry, BarCount-3,entry,colorYellow,Null);

PlotText("T1@"+tar1,BarCount-3,tar1,Clr,Null);

PlotText("T2@"+tar2,BarCount-3,tar2,Clr,Null);

PlotText ("T3@"+tar3,BarCount-3,tar3,Clr,Null);

Sayonce( sig + " " + Name() +" at "+entry);

}

 

messageboard = ParamToggle("Message Board","Show|Hide",0);

printf("\nCurrent P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2));

 

if (messageboard == 0 )

{

GfxSelectFont( "Tahoma", 13, 100 );

GfxSetBkMode( 1 );

GfxSetTextColor( colorYellow );

 

 

if ( sig =="BUY")

{

GfxSelectSolidBrush( colorBlue ); // this is the box background color

}

else

{

GfxSelectSolidBrush( colorRed ); // this is the box background color

}

pxHeight = Status( "pxchartheight" ) ;

xx = Status( "pxchartwidth");

Left = 1100;

width = 310;

x = 2;

x2 = 220;

 

 

y = pxHeight;

 

 

GfxSelectPen( colorLightBlue, 1); // broader color

 

GfxTextOut( ("LAST TRADE P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 13, y-30);;

 

}

Clr1[0]=colorBlack;

for(i=1;i<BarCount;i++)

{

if(Buy) Clr1=colorGreen;

else if (Sell) Clr1=colorRed;

else Clr1=Clr1[i-1];

}

_SECTION_BEGIN("Price");

SetChartOptions(0,chartShowArrows|chartShowDates);

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

Plot( C, "Close",Clr1,styleCandle, styleNoTitle );

_SECTION_END();

 

 

_SECTION_BEGIN("PANEL 25 RC MATH");

ParamShowLevel=ParamList("Show harmonic levels", "1/8|1/4|1/2", 1 );

ParamShowLabel=ParamStyle("Show harmonic labels", styleNoLabel, styleNoLabel);

 

 

//iterate from low to high values

while( Harmonic <= HigherValue )

{

style = styleDashed; // 1/8, 3/8, 5/8, 7/8 lines of any level

color = colorBlue; //1/8, 7/8

if ((Harmonic / PriceStep) % 8 == 1 OR (Harmonic / PriceStep) % 8 == 7)

color = colorBlue; // 3/8, 5/8

if (ParamShowLevel != "1/8")

style = styleNoLine;

 

if ((Harmonic / PriceStep) % 2 == 0) // 1/4, 3/4 lines of any level

{

style = styleLine;

color = colorBlack;

if (ParamShowLevel == "1/2")

style = styleNoLine;

}

 

if ((Harmonic / PriceStep) % 4 == 0) // 1/2 line of any level

{

style = styleDots;

color = colorViolet;

}

 

if ((Harmonic / PriceStep) % 8 == 0) // 1/1 line of Baby level

{

color = colorDarkYellow;

style = styleDots;

if ((Harmonic / Octave3PriceStep) % 64 == 0) // 1/1 line of Minor level

{

style = styleDots; // 1/1 /Level Minor

}

}

 

if (style != styleNoLine) //if there is a line to plot... (avoid printing unused labels)

{

style = style + ParamShowLabel;

Plot( Harmonic, "", color, style);

}

 

Harmonic = Harmonic + PriceStep;

}

_SECTION_END();

TimeFrameSet(inDaily);

DH=H;

DL=L;

TimeFrameRestore();

DH=TimeFrameExpand(DH,inDaily,expandFirst);

DL=TimeFrameExpand(DL,inDaily,expandFirst);

Plot(DH,"DayHigh",colorRed,styleLine|styleThick);

Plot(DL,"DayLow",colorGreen,styleLine|styleThick);

 

 

 

 

rt=AmiTradingSA();

Link to comment
Share on other sites

  • 2 weeks later...

Pls add buy sell condition and definition

 

Pls somebody add BUY and SELL conditions as given :

1. BUY on PIVOT HIGH and next candle color change from dark bright blue to light , purple blue or yellow.

SELL on PIVOT LOW and next candle color change from dark bright RED to light , red , pinkish or yellow.

THANKS AND LOT OF THANKS IN ADVANCE.

 

 

_SECTION_BEGIN("TREND good");

SetChartBkColor(colorLightGrey) ;

SetBarFillColor( IIf( C >O AND C>MA(C,21) AND C>EMA(C,8),colorBlue, IIf( C <O AND C>MA(C,21) AND C>EMA(C,8),colorBlueGrey,IIf(( C<O AND C<MA(C,21) AND C>EMA(C,8)) OR (

 

C<O AND C>MA(C,21) AND C<EMA(C,8)) ,colorYellow,IIf(( C>O AND C<MA(C,21) AND C>EMA(C,8)) OR ( C>O AND C>MA(C,21) AND C<EMA(C,8)) ,colorPink,IIf( C>O AND C<MA

 

(C,21) AND C<EMA(C,8) ,colorPink,colorRed) )))));

Col=IIf( C<MA(C,21) AND C<EMA(C,8) ,colorRed,IIf( C>MA(C,21) AND C>EMA(C,8),colorBlueGrey,IIf(( C<MA(C,21) AND C>EMA(C,8)) OR ( C>MA(C,21) AND C<EMA(C,8))

 

,colorYellow,colorYellow)));

Plot( C, "Close", col, styleNoTitle | ParamStyle("Style") | GetPriceStyle() );

 

_SECTION_END();

 

_SECTION_BEGIN("PIVOT FINDER");

// /* **********************************

//

// Code to automatically identify pivots

//

// ********************************** */

//

// // -- what will be our lookback range for the hh and ll?

//

// farback=Param("How Far back to go",100,50,5000,10);

//

// nBars = Param("Number of bars", 12, 5, 40);

//

// // -- Title.

//

// Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ",

//

// H: " + High + ", L: " + Low + ", C: " + Close;

//

// // -- Plot basic candle chart

//

// PlotOHLC(Open, High, Low, Close,

//

// "BIdx = " + BarIndex() +

//

// "\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L

//

// + "\n"+"C ",

//

// colorBlack, styleCandle);

//

// GraphXSpace=7;

//

// // -- Create 0-initialized arrays the size of barcount

//

// aHPivs = H - H;

//

// aLPivs = L - L;

//

// // -- More for future use, not necessary for basic plotting

//

// aHPivHighs = H - H;

//

// aLPivLows = L - L;

//

// aHPivIdxs = H - H;

//

// aLPivIdxs = L - L;

//

// nHPivs = 0;

//

// nLPivs = 0;

//

// lastHPIdx = 0;

//

// lastLPIdx = 0;

//

// lastHPH = 0;

//

// lastLPL = 0;

//

// curPivBarIdx = 0;

//

// // -- looking back from the current bar, how many bars

//

// // back were the hhv and llv values of the previous

//

// // n bars, etc.?

//

// aHHVBars = HHVBars(H, nBars);

//

// aLLVBars = LLVBars(L, nBars);

//

// aHHV = HHV(H, nBars);

//

// aLLV = LLV(L, nBars);

//

// // -- Would like to set this up so pivots are calculated back from

//

// // last visible bar to make it easy to "go back" and see the pivots

//

// // this code would find. However, the first instance of

//

// // _Trace output will show a value of 0

//

// aVisBars = Status("barvisible");

//

// nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));

//

// _TRACE("Last visible bar: " + nLastVisBar);

//

// // -- Initialize value of curTrend

//

// curBar = (BarCount-1);

//

// curTrend = "";

//

// if (aLLVBars[curBar] <

//

// aHHVBars[curBar]) {

//

// curTrend = "D";

//

// }

//

// else {

//

// curTrend = "U";

//

// }

//

// // -- Loop through bars. Search for

//

// // entirely array-based approach

//

// // in future version

//

// for (i=0; i<farback; i++) {

//

// curBar = (BarCount - 1) - i;

//

// // -- Have we identified a pivot? If trend is down...

//

// if (aLLVBars[curBar] < aHHVBars[curBar]) {

//

// // ... and had been up, this is a trend change

//

// if (curTrend == "U") {

//

// curTrend = "D";

//

// // -- Capture pivot information

//

// curPivBarIdx = curBar - aLLVBars[curBar];

//

// aLPivs[curPivBarIdx] = 1;

//

// aLPivLows[nLPivs] = L[curPivBarIdx];

//

// aLPivIdxs[nLPivs] = curPivBarIdx;

//

// nLPivs++;

//

// }

//

// // -- or current trend is up

//

// } else {

//

// if (curTrend == "D") {

//

// curTrend = "U";

//

// curPivBarIdx = curBar - aHHVBars[curBar];

//

// aHPivs[curPivBarIdx] = 1;

//

// aHPivHighs[nHPivs] = H[curPivBarIdx];

//

// aHPivIdxs[nHPivs] = curPivBarIdx;

//

// nHPivs++;

//

// }

//

// // -- If curTrend is up...else...

//

// }

//

// // -- loop through bars

//

// }

//

// // -- Basic attempt to add a pivot this logic may have missed

//

// // -- OK, now I want to look at last two pivots. If the most

//

// // recent low pivot is after the last high, I could

//

// // still have a high pivot that I didn't catch

//

// // -- Start at last bar

//

// curBar = (BarCount-1);

//

// candIdx = 0;

//

// candPrc = 0;

//

// lastLPIdx = aLPivIdxs[0];

//

// lastLPL = aLPivLows[0];

//

// lastHPIdx = aHPivIdxs[0];

//

// lastHPH = aHPivHighs[0];

//

// if (lastLPIdx > lastHPIdx) {

//

// // -- Bar and price info for candidate pivot

//

// candIdx = curBar - aHHVBars[curBar];

//

// candPrc = aHHV[curBar];

//

// if (

//

// lastHPH < candPrc AND

//

// candIdx > lastLPIdx AND

//

// candIdx < curBar) {

//

// // -- OK, we'll add this as a pivot...

//

// aHPivs[candIdx] = 1;

//

// // ...and then rearrange elements in the

//

// // pivot information arrays

//

// for (j=0; j<nHPivs; j++) {

//

// aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-

//

// (j+1)];

//

// aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];

//

// }

//

// aHPivHighs[0] = candPrc ;

//

// aHPivIdxs[0] = candIdx;

//

// nHPivs++;

//

// }

//

// } else {

//

// // -- Bar and price info for candidate pivot

//

// candIdx = curBar - aLLVBars[curBar];

//

// candPrc = aLLV[curBar];

//

// if (

//

// lastLPL > candPrc AND

//

// candIdx > lastHPIdx AND

//

// candIdx < curBar) {

//

// // -- OK, we'll add this as a pivot...

//

// aLPivs[candIdx] = 1;

//

// // ...and then rearrange elements in the

//

// // pivot information arrays

//

// for (j=0; j<nLPivs; j++) {

//

// aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

//

// aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

//

// }

//

// aLPivLows[0] = candPrc;

//

// aLPivIdxs[0] = candIdx;

//

// nLPivs++;

//

// }

//

// }

//

// // -- Dump inventory of high pivots for debugging

//

// /*

//

// for (k=0; k<nHPivs; k++) {

//

// _TRACE("High pivot no. " + k

//

// + " at barindex: " + aHPivIdxs[k] + ", "

//

// + WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k],

//

// DateTime(), 1), formatDateTime)

//

// + ", " + aHPivHighs[k]);

//

// }

//

// */

//

// // -- OK, let's plot the pivots using arrows

//

// PlotShapes(

//

// IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0,

//

// High, Offset=-15);

//

// PlotShapes(

//

// IIf(aLPivs==1, shapeUpArrow , shapeNone), colorGreen, 0,

//

// Low, Offset=-15);

//

//------------------------------------------------------------------------------

 

/* **********************************

 

Code to automatically identify pivots

 

********************************** */

 

// -- what will be our lookback range for the hh and ll?

farback=Param("How Far back to go",100,50,5000,10);

nBars = Param("Number of bars", 12, 5, 40);

 

// -- Title.

 

Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ",

 

H: " + High + ", L: " + Low + ", C: " + Close;

 

// -- Plot basic candle chart

 

PlotOHLC(Open, High, Low, Close,

 

"BIdx = " + BarIndex() +

 

"\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L

 

+ "\n"+"C ",

 

colorBlack, styleCandle);

 

GraphXSpace=7;

 

// -- Create 0-initialized arrays the size of barcount

 

aHPivs = H - H;

 

aLPivs = L - L;

 

// -- More for future use, not necessary for basic plotting

 

aHPivHighs = H - H;

 

aLPivLows = L - L;

 

aHPivIdxs = H - H;

 

aLPivIdxs = L - L;

 

nHPivs = 0;

 

nLPivs = 0;

 

lastHPIdx = 0;

 

lastLPIdx = 0;

 

lastHPH = 0;

 

lastLPL = 0;

 

curPivBarIdx = 0;

 

// -- looking back from the current bar, how many bars

 

// back were the hhv and llv values of the previous

 

// n bars, etc.?

 

aHHVBars = HHVBars(H, nBars);

 

aLLVBars = LLVBars(L, nBars);

 

aHHV = HHV(H, nBars);

 

aLLV = LLV(L, nBars);

 

// -- Would like to set this up so pivots are calculated back from

 

// last visible bar to make it easy to "go back" and see the pivots

 

// this code would find. However, the first instance of

 

// _Trace output will show a value of 0

 

aVisBars = Status("barvisible");

 

nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));

 

_TRACE("Last visible bar: " + nLastVisBar);

 

// -- Initialize value of curTrend

 

curBar = (BarCount-1);

 

curTrend = "";

 

if (aLLVBars[curBar] <

 

aHHVBars[curBar]) {

 

curTrend = "D";

 

}

 

else {

 

curTrend = "U";

 

}

 

// -- Loop through bars. Search for

 

// entirely array-based approach

 

// in future version

 

for (i=0; i<farback; i++) {

 

curBar = (BarCount - 1) - i;

 

// -- Have we identified a pivot? If trend is down...

 

if (aLLVBars[curBar] < aHHVBars[curBar]) {

 

// ... and had been up, this is a trend change

 

if (curTrend == "U") {

 

curTrend = "D";

 

// -- Capture pivot information

 

curPivBarIdx = curBar - aLLVBars[curBar];

 

aLPivs[curPivBarIdx] = 1;

 

aLPivLows[nLPivs] = L[curPivBarIdx];

 

aLPivIdxs[nLPivs] = curPivBarIdx;

 

nLPivs++;

 

}

 

// -- or current trend is up

 

} else {

 

if (curTrend == "D") {

 

curTrend = "U";

 

curPivBarIdx = curBar - aHHVBars[curBar];

 

aHPivs[curPivBarIdx] = 1;

 

aHPivHighs[nHPivs] = H[curPivBarIdx];

 

aHPivIdxs[nHPivs] = curPivBarIdx;

 

nHPivs++;

 

}

 

// -- If curTrend is up...else...

 

}

 

// -- loop through bars

 

}

 

// -- Basic attempt to add a pivot this logic may have missed

 

// -- OK, now I want to look at last two pivots. If the most

 

// recent low pivot is after the last high, I could

 

// still have a high pivot that I didn't catch

 

// -- Start at last bar

 

curBar = (BarCount-1);

 

candIdx = 0;

 

candPrc = 0;

 

lastLPIdx = aLPivIdxs[0];

 

lastLPL = aLPivLows[0];

 

lastHPIdx = aHPivIdxs[0];

 

lastHPH = aHPivHighs[0];

 

if (lastLPIdx > lastHPIdx) {

 

// -- Bar and price info for candidate pivot

 

candIdx = curBar - aHHVBars[curBar];

 

candPrc = aHHV[curBar];

 

if (

 

lastHPH < candPrc AND

 

candIdx > lastLPIdx AND

 

candIdx < curBar) {

 

 

// -- OK, we'll add this as a pivot...

 

aHPivs[candIdx] = 1;

 

// ...and then rearrange elements in the

 

// pivot information arrays

 

for (j=0; j<nHPivs; j++) {

 

aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-

 

(j+1)];

 

aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];

 

}

 

aHPivHighs[0] = candPrc ;

 

aHPivIdxs[0] = candIdx;

 

nHPivs++;

 

}

 

} else {

 

 

// -- Bar and price info for candidate pivot

 

candIdx = curBar - aLLVBars[curBar];

 

candPrc = aLLV[curBar];

 

if (

 

lastLPL > candPrc AND

 

candIdx > lastHPIdx AND

 

candIdx < curBar) {

 

 

// -- OK, we'll add this as a pivot...

 

aLPivs[candIdx] = 1;

 

// ...and then rearrange elements in the

 

// pivot information arrays

 

for (j=0; j<nLPivs; j++) {

 

aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

 

aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

 

}

 

aLPivLows[0] = candPrc;

 

aLPivIdxs[0] = candIdx;

 

nLPivs++;

 

}

 

}

 

// -- Dump inventory of high pivots for debugging

 

/*

 

for (k=0; k<nHPivs; k++) {

 

_TRACE("High pivot no. " + k

 

+ " at barindex: " + aHPivIdxs[k] + ", "

 

+ WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k],

 

DateTime(), 1), formatDateTime)

 

+ ", " + aHPivHighs[k]);

 

}

 

*/

 

// -- OK, let's plot the pivots using arrows

 

PlotShapes(

 

IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0,

 

High, Offset=-15);

 

PlotShapes(

 

IIf(aLPivs==1, shapeUpArrow , shapeNone), colorGreen, 0,

 

Low, Offset=-15);

 

_SECTION_END();

Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...