Simple Coding Help - No Promise.

hello


i need an afl which plots and scans the following conditions


1) three consecutive higher closes w.r.t to previous day
and

2) three consecutive lower closes w.rt to previous day

i also request a param option in this to change parameters from 3 to 10 in steps of 1


rgds



sumit
 

casoni

Well-Known Member
Today = LastValue(Day());

Plot(IIf(ToDay == Day(),TimeFrameGetPrice( "H", inDaily, 0 ),Null),"",colorOrange,styleThick);
Plot(IIf(ToDay == Day(),TimeFrameGetPrice( "L", inDaily, 0 ),Null),"",colorTurquoise,styleThick);
Hi LVGandhi,


One more line wants to plot in intra day just like Hi and Low ....plotting on today's data .....50sma of daily ...horizontal line in intra day and second thing how to scan and use alertsif function for Prv.Hi or Low is crossed ....

i am right now plotting 50sma daily in intra but it plots in historical intra days also...which i want to avoid....hence query.

when want to use multiple alerts ....in scanning not possible ...but if you can help me with alertsif function then it will solve that issue....like

1..price crossing 50 sma daily...
2...price crossing Prv. Hi or Low
3. Macd crossing zero line...

Just to name few.


Thanking you,
Kedarnath
 

hmp

Well-Known Member
A big thanks to senior's, amsin21 & hmsanil, after the correction I hear audio when ever a buy or sell is generated.

Thanks once again for your kind gesture.
Dear Aman ji, will you pl. post new updated afl that is including sound system for me. I try to copy pest but not succeeded. Thanks in advance.
 

lvgandhi

Well-Known Member
Hi LVGandhi,


One more line wants to plot in intra day just like Hi and Low ....plotting on today's data .....50sma of daily ...horizontal line in intra day and second thing how to scan and use alertsif function for Prv.Hi or Low is crossed ....

i am right now plotting 50sma daily in intra but it plots in historical intra days also...which i want to avoid....hence query.

when want to use multiple alerts ....in scanning not possible ...but if you can help me with alertsif function then it will solve that issue....like

1..price crossing 50 sma daily...
2...price crossing Prv. Hi or Low
3. Macd crossing zero line...

Just to name few.


Thanking you,
Kedarnath
Sorry. It needs some time. I am unable to help.
 

manishchan

Well-Known Member
Hi All..

not sure if this is possible.. trying my luck :)

Letz say I draw a horizontal line in Ami and I dnt want it to be deleted even if I do "Delete All Studies". Is there a way to do ? I tried lock position but it doesn't work. Can this be done coding ways ?
 
Dear Aman ji, will you pl. post new updated afl that is including sound system for me. I try to copy pest but not succeeded. Thanks in advance.

Dear hmp,

Pls find the below afl with audio.

// Million Dollar Afl //

_SECTION_BEGIN("MAMA");
SetBarsRequired( 10000, 10000 );
SetChartOptions(0,chartShowArrows|chartShowDates);
prc = ( High + Low ) / 2;
fastlimit = 0.5;
slowlimit = 0.05;
pi=4*atan(1);
RTD=180/pi;
DTR=pi/180;

Cyclepart=Param("Alpha",0.5,0.1,1,0.1);

Smooth[0] = Period = Detrender[0] = I1[0] = Q1[0] = 0;
phase[0]=deltaphase[0]=MAMA[0]=FAMA[0]=0;
for ( i = 6; i < BarCount; i++ )
{
Smooth = ( 4 * prc + 3 * prc[i-1] + 2 * prc[i-2] + prc[i-3] ) / 10;
AmpCorr = 0.075 * Period[i-1] + 0.54;
Detrender = ( 0.0962 * Smooth + 0.5769 * Smooth[i-2] - 0.5769 * Smooth[i-4] - 0.0962 * Smooth[i-6] ) * AmpCorr;
Q1 = ( 0.0962 * Detrender + 0.5769 * Detrender[i-2] - 0.5769 * Detrender[i-4] - 0.0962 * Detrender[i-6] ) * AmpCorr;
I1 = Detrender[i-3];
if (I1 != 0) phase = DTR*360/atan(q1/I1);
deltaphase=phase[i-1]-phase;
if (deltaphase <1) deltaphase=1;
alpha=fastlimit/deltaphase;
if (alpha < slowlimit) alpha=slowlimit;
MAMA=alpha * prc +(1-alpha)*MAMA[i-1];
FAMA=Cyclepart*alpha * prc +(1-Cyclepart*alpha)*FAMA[i-1];
}

Plot( MAMA, "MAMA", colorTurquoise, styleLine|styleThick );
Plot( FAMA, "FAMA", colorYellow, styleLine|styleThick );
PlotOHLC(O,H,L,C,"MAMA",IIf(MAma>fama,colorLime,colorRed),styleBar|styleThick);
_SECTION_END();

_SECTION_BEGIN("SYSTEM");
BuySetupValue=ValueWhen(Cross(MAMA,FAMA),H,1);
SellsetupValue=ValueWhen(Cross(FAMA,MAMA),L,1);
Buysetup =Cross(MAMA,FAMA) ;
Sellsetup = Cross(FAMA,MAMA);
Longa = Flip(Buysetup,Sellsetup);
shrta = Flip(Sellsetup,Buysetup);
Buy=Longa AND Cross(C,BuySetupValue);
Sell=shrta AND Cross(SellsetupValue,C);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
t1= Flip(Buy,Sell);
t2= Flip(Sell,Buy);
BPrice=ValueWhen(t1 AND Ref(t1,-1)==0,C,1);
SPrice=ValueWhen(t2 AND Ref(t2,-1)==0,C,1);
GraphXSpace = 5;
dist = 1.5*ATR(20);
for( i = 0; i < BarCount; i++ )
{
if( Buy ) PlotText( "" + C[ i ], i, L[ i ]-dist, colorLime );
if( Sell ) PlotText( "" + C[ i ], i, H[ i ]+dist, colorYellow );
}
_SECTION_END();


//=================TITLE================================================================================================
function SayNotTooOften( text, Minperiod )
{
elapsed=GetPerformanceCounter()/1000;
Lastelapsed = Nz( StaticVarGet("lastsaytime") );

if( elapsed - Lastelapsed > Minperiod )
{
StaticVarSet("lastsaytime", elapsed );
Say( text );
}
}
_SECTION_BEGIN("Title");
if( Status("action") == actionIndicator )
(
Title = EncodeColor(colorWhite)+ "MAMA Poistional System" + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
" - " + Date() +" - "+"\n" +EncodeColor(colorYellow) +"Op-"+O+" "+"Hi-"+H+" "+"Lo-"+L+" "+
"Cl-"+C+" "+ "Vol= "+ WriteVal(V)+"\n"+
EncodeColor(colorLime)+
WriteIf (Buy , " GO LONG / Reverse Signal at "+C+" ","")+
WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+" ","")+"\n"+EncodeColor(colorWhite)+
WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BPrice)+"","")+
WriteIf(Buy , "Total Profit/Loss for the Last trade Rs."+(SPrice-C)+"","")+
WriteIf(Longa AND NOT Buy, "Trade : Long - Entry price Rs."+(BPrice),"")+
WriteIf(shrta AND NOT Sell, "Trade : Short - Entry price Rs."+(SPrice),"")+"\n"+
WriteIf(Longa AND NOT Buy, "Current Profit/Loss Rs."+(C-BPrice)+"","")+
WriteIf(shrta AND NOT Sell, "Current Profit/Loss Rs."+(SPrice-C)+"",""));
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
if(LastValue(Buy)) SayNotTooOften(Name()+Interval(2)+"Buy triggered",180);
if(LastValue(Sell)) SayNotTooOften(Name()+Interval(2)+"Sell triggered",180);

AlertIf( Buy, "SOUND c:\\alert.wav", "Audio alert",0,1+2+4+8);
AlertIf( Sell, "SOUND c:\\alert.wav", "Audio alert",0,1+2+4+8);


_SECTION_END();
WriteVal(BuyPrice);
WriteVal(Longa);
WriteVal(t1);
WriteVal(SellPrice);
WriteVal(shrta);
_SECTION_END();

_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",30,11,100,1);
GfxSelectFont("Times New Roman", FS, 700, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor( ParamColor("Color",colorYellow) );
Hor=Param("Horizontal Position",1200,1,1200,1);
Ver=Param("Vertical Position",1,1,830,1);
GfxTextOut(""+C, Hor , Ver );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Times New Roman", 11, 700, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor(ParamColor("Color",colorGreen) );
GfxTextOut(""+DD+" ("+xx+"%)", Hor , Ver+45 );
_SECTION_END();

_SECTION_BEGIN("Day Divider");
grid_day = IIf(Day()!=Ref(Day(),-1),1,0);
Plot(grid_Day,"",colorYellow,styleHistogram|styleDashed|styleNoLabel|styleOwnScale);
_SECTION_END();

_SECTION_BEGIN("Price Line");
PriceLineColor=ParamColor("PriceLineColor",ColorRGB(255,255,0));
PriceLevel = ParamField("PriceField", field = 3 );
Daysback = Param("Bars Back",25,10,500,1);
FirstBar = BarCount - DaysBack;
YY = IIf(BarIndex() >= Firstbar,EndValue(PriceLevel),Null);
Plot(YY,"Current Price",PriceLineColor,ParamStyle("LineStyle",styleLine|styleDashed|styleNoTitle|styleNoLabel|styleThick,maskAll));
side = Param("Side",1,0,1000,1);
dist = 0;
for( i = 0; i < BarCount; i++ )
{
if(i+side== BarCount) PlotText( "\n " + PriceLevel[ i ], i, YY[ i ]-dist, colorYellow );
}
_SECTION_END();
 

amsin21

Well-Known Member
Dear hmp,

if(LastValue(Buy)) SayNotTooOften(Name()+Interval(2)+"Buy triggered",180);
Dear Aman,

You can adjust the last value "180" which equals 3 minutes to your taste. If you need every five minutes a voice alert, change it to 300.
 

Similar threads