Jump to content

Recommended Posts

Posted

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();

Posted (edited)

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
Posted
  tamarind said:
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?

Posted
  Quote
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

 

  Quote
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.

Posted

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();

  • 2 weeks later...
Posted

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();

  • 3 months later...
Posted

this is only part of another afl

no point wasting time trying to find somebody who can write for you a the most the message board will work if you write buy or sell as pivots highs or lows

  • 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...