Simple Coding Help - No Promise.

Hi Seniors,
I need your help in coding a simple strategy in amibroker.
The conditions are:--

For BUY=
1) Buy when candle closes above SMA 15( High)
2) and RSI(14) is <50

FOR SELL
1) SELL when candle closes below SMA 15 ( LOW)
2) RSI (14) is >50

Here the SMA prices is Hgh and Low and not the close price
Thanks
 

jallanankit

Well-Known Member
@jallanankit, @amitrandive, @hmp

Yes, it is perfectly possible to look at quote price of future and execute trades in Options. It took me approximately 15 days to write this and lot longer to refine the errors and back test the strategy. At the moment, we are awaiting approvals from regulatory authorities to release the strategy.
It seems I m on the right path in that case..
Will u be able to share the strategy in some time when approved or is that a proprietary strategy where sharing will not be possible..

Pl revert.

Regards,
 
Hi seniors, please modify below mentioned AFL.
My requirement is:

////////////////////////////////////////////////////////////////////

Buyexit = when price candle touch @ Target 3 otherwise exit at Sell signal.
If Buyexit on Target 3 a signal should be generated there.

Sellexit = when price candle touch @ Target 3 otherwise exit at Buy signal.
If Sellexit on Target 3 a signal should be generated there.
///////////////////////////////////////////////////////////////////

_SECTION_BEGIN("Realtimetips ");

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", colorBlack , styleNoTitle | styleCandle | GetPriceStyle() );
//
messageboard = ParamToggle("Message Board","Show|Hide",0);
showsl = ParamToggle("Stop Loss Line", "Show|Hide", 0);
no=10;
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);
s5d=IIf(avn==1,sup,res);

if (showsl == 0)
{Plot(s5d,"Stop Loss",colorCustom14,styleDots);}
exitlong = Cross(s5d, C);
PlotShapes(exitlong * shapeDownArrow, colorRed,0,H,-12);
exitshort = Cross(C, s5d);
PlotShapes(exitshort * shapeUpArrow, colorGreen,0,L,-12);

Buy = exitshort;
//Buy = exitlong = Cross(C, s5d)> tar3 = entry - (entry * .0100);

Sell = exitlong;
Short = Sell;
Cover = Buy;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short, Cover);
Cover = ExRem(Cover, Short);
AlertIf( Buy, "", "BUY @ " + C, 1 );
AlertIf( Sell, "", "SELL @ " + C, 2 );

for(i=BarCount-1;i>1;i--)
{
if(Buy == 1)
{
entry = C;
sig = "BUY";
sl = s5d;
tar1 = entry + (entry * .0050);
tar2 = entry + (entry * .0075);
tar3 = entry + (entry * .0100);
bars = i;
i = 0;
}
if(Sell == 1)
{
sig = "SELL";
entry = C;
sl = s5d;
tar1 = entry - (entry * .0050);
tar2 = entry - (entry * .0075);
tar3 = entry - (entry * .0100);
bars = i;
i = 0;
}
}
Offset = 20;
Clr = IIf(sig == "BUY", colorLime, colorOrange);
ssl = IIf(bars == BarCount-1, s5d[BarCount-1], Ref(s5d, -1));
sl = ssl[BarCount-1];

Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, sl, BarCount, sl,1), "", colorCustom14, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, entry, BarCount, entry,1), "", colorTurquoise, styleLine|styleDots, Null, Null, Offset);

for (i=bars; i <BarCount;i++)
{
PlotText("" + sig + " @ " + entry, BarCount+3, entry, Null, colorTurquoise);
PlotText("Target 1 : " + tar1, BarCount+3, tar1, Null, Clr);
PlotText("Target 2 : @ " + tar2, BarCount+3, tar2, Null, Clr);
PlotText("Target 3 : @ " + tar3, BarCount+3, tar3, Null, Clr);
PlotText("Trailing SL @ " + sl, BarCount+3, sl, Null, colorCustom14);
}
//Plot(sl, "", colorCustom14, styleLine);
printf("Last " + sig + " Signal came " + (BarCount-bars) + " bars ago");
printf("\n" + sig + " @ : " + entry + "\nStop Loss : " + sl + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"+ "\nTarget_1 : " + tar1 + "\nTarget_2 : " + tar2 + "\nTarget_3 : " + tar3);
printf("\nCurrent P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2));

if (messageboard == 0 )
{
GfxSelectFont( "Tahoma", 13, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( sig =="BUY")
{
GfxSelectSolidBrush( colorGreen ); // 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 = 290;

y = pxHeight;

GfxSelectPen( colorLightBlue, 1); // broader color
GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;

GfxTextOut( (" ......................................."),27,y-160);
GfxTextOut( ("Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago"), 13, y-140) ; // The text format location
GfxTextOut( ("" + WriteIf(sig =="BUY",sig + " @ ",sig + " @") + " : " + entry), 13, y-120);
GfxTextOut( ("Trailing SL : " + sl + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"), 13, y-100);
GfxTextOut( ("Target:1 : " + tar1), 13, y -80);
GfxTextOut( ("Target:2 : " + tar2), 13,y-60);
GfxTextOut( ("Target:3 : " + tar3), 13,y-40);
GfxTextOut( ("Current P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 13, y-22);;

x = 290;
x2 = 570;
GfxSelectSolidBrush( colorTurquoise );
GfxSetTextColor( colorBlack);
GfxSelectFont( "Tahoma", 14, 100 );
GfxSetBkMode( 1 );
GfxSelectPen( colorLightBlue, 1); // broader color
GfxRoundRect( x, y - 43, x2, y , 7, 7 ) ;

GfxSelectFont( "Tahoma", 10, 400 );

}
//

function PlotDT()
{
displacement = Param("Displacement Value", 12, 1, 100, 1);
slmode = ParamToggle("Stop Loss", "Auto|Manual", 1);
width = ParamToggle("Width", "HL|OC", 1);
Count = Param("No. of DTL", 4, 4, 20, 1);
NewDay = Day()!= Ref(Day(), -1);

for (i=BarCount-1;i > 1; i--)
{
if(NewDay == 1)
{
printf("High : " + i);
if(width == 1)
{
DL = IIf(O < C, O, C);
DH = IIf(O > C, O, C);
}
else
{
DL = L;
DH = H;
}
Bars = i;
i = -1;
}
}

if(slmode==1)
{
distance = displacement;
}
else
{
distance = ((DH+DL)/2) * .01;
}

Plot(LineArray(BarCount - (BarCount-Bars+20), DH, BarCount+35, DH, 1), "", colorLime, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Buy Above " + DH + "; Stop Loss = " + DL, BarCount + 0, DH, colorBlack, colorLime);
Plot(LineArray(BarCount - (BarCount-Bars+20), (DH+ distance), BarCount+35, (DH+ distance), 1), "", colorLime, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Target = " + (DH+ distance), BarCount + 0, (DH+ distance), colorBlack, colorLime);
Plot(LineArray(BarCount - (BarCount-Bars+20), DL, BarCount+35, DL, 1), "", colorOrange, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Sell Below " + DL + "; Stop Loss = " + DH, BarCount + 0, DL, colorBlack, colorOrange);
Plot(LineArray(BarCount - (BarCount-Bars+20), (DL-distance), BarCount+35, (DL-distance), 1), "", colorOrange, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Target = " + (DL-distance), BarCount + 0, (DL-distance), colorBlack, colorOrange);
}
function PlotIndicators()
{

SetChartOptions(0,chartShowArrows|chartShowDates);
/* Standard Error Bands */
Periods = Param("Standard Error", 80, 3, 200, 1);
Smooth = Param("Smooth",14,2,100,1);


LRCurve = LinearReg( C, periods );
MALRCurve = MA(LRCurve, Smooth);
SEValue = StdErr( C, periods );
SErrorAvg = MA(SEValue, Smooth);

LowerBand = MALRCurve - SErrorAvg ;
UpperBand = MALRCurve + SErrorAvg ;

Plot( MALRCurve , "MidBand", ParamColor("ColorMB",colorIndigo) , styleDashed|styleNoTitle);
Plot( LowerBand , "LowerBand", ParamColor("ColorLo",colorOrange) , styleLine|styleThick|styleNoTitle);
Plot( UpperBand , "UpperBand", ParamColor("ColorUp",colorGreen) , styleLine|styleThick|styleNoTitle);

Ch = TimeFrameGetPrice("C", in1Minute/60);
clr = IIf(Ch[BarCount-2] > Ch[BarCount-1],colorRed,colorLime);

Plot(LineArray(0,C[BarCount-1],BarCount-1,C[BarCount-1],15), "", Clr, styleLine|styleNoLabel, Null, Null, 30);
PlotText("CMP:" + C[BarCount-1], BarCount+5, C[BarCount-1],colorBlack,Clr);

LRPeriods = Param("Length", 40, 3, 200, 1);
LRCurve = LinearReg( C, LRPeriods );

PlotLR = IIf(LRCurve < LowerBand, (LRCurve + LowerBand)/2, IIf(LRCurve > UpperBand, (LRCurve + UpperBand)/2, LRCurve));
PlotLR = (PlotLR + SwingLine)/2;
//Plot( PlotLR , "Stop Loss |", ParamColor("SLColor",colorBlue), 4+8+32+2048);
//Plot( SwingLine, "SwingLine", ParamColor( "SWColor", colorBlue ), ParamStyle("StyleSW",style=styleThick|styleNoLabel , mask=maskDefault) );

bc1 = (Cross(C, MALRCurve) OR Cross(C, UpperBand) OR Cross(C, LowerBand)) AND (C > SwingLine);
bc2 = Cross(C, SwingLine) AND (C > MALRCurve OR C > UpperBand OR C > LowerBand);

sc1 = (Cross(MALRCurve, C) OR Cross(UpperBand, C) OR Cross(LowerBand, C)) AND (C < SwingLine);
sc2 = Cross(SwingLine, C) AND (C < MALRCurve OR C < UpperBand OR C < LowerBand);
}
//PlotDT();
_SECTION_END();
 
It seems I m on the right path in that case..
Will u be able to share the strategy in some time when approved or is that a proprietary strategy where sharing will not be possible..

Pl revert.

Regards,
It is a commercial strategy that I was paid to develop. Heart and brains is in AFL but it is likely that few aspects of it may be delegated to C# or C++ plugin for performance reasons.
 
Hi Seniors,
I have this afl which doesn't work due to errors which I cant correct being too amature for afls, here is the code,

Code:
_SECTION_BEGIN("BUY");
_SECTION_BEGIN ( "Chart Display Theme" );
ChartDisplayTheme = ParamList ( "Chart Display Theme", "White background with B/W candles|Black background with R/G candles", 1 );
param_ShowSystemTitle = ParamToggle ( "Show System Title ?", "No|Yes", 1 );
_SECTION_END ();

//============================End of Chart Display Style=============================//
//============================Take User Inputs=============================//
_SECTION_BEGIN ( "Alerts" );
Param_AudioAlert = ParamToggle ( "Audio / text Alert?", "No|Yes", 1 );
Param_ShowValuesBox = ParamToggle ( "Display values in Box?", "No|Yes", 1 );
Param_BoxLocation = ParamList ( "Box Location?", "Left Top|Left Bottom|Right Top|Right Bottom", 0 );
Param_BoxBackgroundColour = ParamColor ( "Box background colour?",colorDarkGrey);
Param_HideBoxBehindChart = ParamToggle ( "Hide Box behind Chart?", "No|Yes" );
_SECTION_END ();
_SECTION_BEGIN ( "Money Management" );
Param_Show_Equity = ParamToggle ( "Show Equity ?(Enter correct INITIAL EQUITY in AA Settings)", "No|Yes" );
Param_Margin = Param ( "Margin required (used for backtesting only)", 15, 0.001, 100, 0.001 );
Param_LotSize = Param ( "Lot Size - DO NOT CHANGE", 50, 5, 5000, 5 );
Param_NoOfLots = Param ( "No of lots normally traded (used for backtesting only)", 2, 1, 10000, 1 );
Param_drawdown= ParamList ( "Trailing Stoploss Method - DO NOT CHANGE", "% of total trade value|Fixed amount per share" );
Param_Stoploss_percent = Param ( "Stoploss % per trade", 0.7, 0.01, 5, 0.01 );
Param_Stoploss_amount = Param ( "Stoploss Amount per share", 15, 0.01, 50000, 0.01 );
_SECTION_END ();
//============================End of User Inputs=============================//
//==========================Start of Show Resistance and Support Lines===============================//
_SECTION_BEGIN ( "Support-Resistance" );
Param_ShowResSup = ParamToggle ( "Show Resistance / Support ?", "No|Yes" );
Param_HowManyRS = Param ( "How many Support / Resistance to show ?", 2, 0, 10, 1 );
Param_ResSupVolatility = Param ( "Support / Resistance Volatility ", 0.1, 0.1, 100, 0.1 );
Param_SupLineColor = ParamColor ( "Support Line Color",colorBrightGreen);
Param_SupLineStyle = ParamStyle ( "Support Line Style", styleLine|styleNoTitle);
Param_ResLineColor = ParamColor ( "Resistance Line Color",colorRed);
Param_ResLineStyle = ParamStyle ( "Resistance Line Style", styleLine|styleNoTitle);
if(Param_ShowResSup AND Param_HowManyRS> 0 )  (Param_HowManyRS [U]Param_ResSupVolatility,Param_SupLineColor,Param_ResLineColor,Param_SupLineStyle,Param_ResLineStyle),[/U]
Error 30-Syntex error UNEXPECTED INDENTIFIER
_SECTION_END ();
//===========End of Resistance and Support Lines===========//
_SECTION_BEGIN ( "Trading System" );
//====================Show Reversals ?====================//
Param_ShowReversals = ParamToggle ( "Show possible reversals ?", "No|Yes" );
if(Param_ShowReversals) TA_ShowReversals);
[B][U]Error -30[/U][/B]
//====================End of Show Reversals ?====================//
//====================Start of Trading System====================//
Param_ShowArrows = ParamToggle ( "Show Buy/Sell/Short/Cover Arrows ?", "No|Yes", 1 );
firstBarEntryExit = ParamToggle ( "First bar trade entry / exit ?", "No|Yes" );
A = Param ( "A - 14, 2, 25, 1 );
B = Param ( B )- 5, 2, 25, 1 );
CC = Param ( C) - 5, 1, 25, 1 );
D = Param ( D) - 5, 1, 25, 1 );
E = Param ( E) - 18, 1, 20, 1 );
TA_TradingSystemCheckEntry (A,B,CC,D,E,firstBarEntryExit);
_SECTION_END ();


//====================End of Trading System====================//
//==================Plot Equity, Arrows, AudioAlerts and box containing values================//
TA_PlotEquityArrowsAlertsValueBox (Param_BoxLocation, Param_Show_Equity,Param_ShowArrows,Param_AudioAlert,param_ShowSystemTitle,Param_ShowValuesBox, Param_HideBoxBehindChart,Param_BoxBackgroundColour);
//=================== End of Plot Arrows, AudioAlerts and box containing values================//
//=================== Start of Volume Display================//
_SECTION_BEGIN ( "Volume Selector" );
showVolume = ParamToggle ( "Show Volume ?", "No|Yes", 1 );
Erro31-UNEXPECTED IDENTIFIER 
displayStyle = ParamList ( "Volume Display Mode", "Normal Volume|Coloured Volume|Volume at Price|Volume at Price (grouped)|Volume at Price + Volume|Volume at Price + Coloured Volume|Volume at Price (grouped) + Volume|Volume at Price (grouped) + Coloured Volume|Customised VAP / candles|Customised VAP / candles + Volume|Customised VAP / candles + Coloured Volume" );
Param_NormalVolumeColor = ParamColor ( "Normal Volume Colour", colorDarkBlue);
Param_NormalVolumeStyle = ParamStyle ( "Normal Volume Style", styleHistogram | styleOwnScale | styleNoLabel, maskHistogram );
Param_UpVolumeColor = ParamColor ( "Up Volume Colour", colorGreen);
Param_DownVolumeColor = ParamColor ( "Down Volume Colour", colorRed);
Param_ColouredVolumeStyle = ParamStyle ( "Coloured Volume Style", styleHistogram | styleOwnScale | styleNoLabel, maskHistogram);
Param_VAPLinesCount = Param ( "VAP Lines Count", 100, 5, 1000, 1 );
Param_VAPLinesWidth = Param ( "VAP Lines Width", 40, 1, 100, 1 );
Param_VAPVolumeColor = ParamColor ( "VAP Color", colorGold);
Param_VAPSide = ParamToggle ( "VAP Side", "Left|Right" );
Param_VAPOverlay = 4 * ParamToggle ( "VAP Z-order", "On top|Behind", 1 );
Param_VAPStyle = 2 * ParamToggle ( "VAP(grouped) Style", "Fill|Lines", 1 );
Param_Segment = Param ( "No. of candles for Customized VAP", 10, 2, 1000, 1 );
if(showVolume)
{
segmentValue = IIf ( Interval () < inDaily, Day (), Month () );
segmentValue = segmentValue != Ref ( segmentValue, - 1 );
if(displayStyle == "Normal Volume" )
{
Plot ( Volume, "Vol ", Param_NormalVolumeColor, Param_NormalVolumeStyle, 2 );
}
else if(displayStyle == "Coloured Volume" )
{
Plot ( Volume, "Vol ", IIf ( C > O, Param_UpVolumeColor,Param_DownVolumeColor), Param_ColouredVolumeStyle, 2 );
}
else if (displayStyle == "Volume at Price" )
{
PlotVAPOverlay ( Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPOverlay );
}
else if (displayStyle== "Volume at Price (grouped)" )
{
PlotVAPOverlayA (segmentValue, Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPStyle | Param_VAPOverlay);
}
else if (displayStyle == "Volume at Price + Volume" )
{
Plot ( Volume, "Vol ", Param_NormalVolumeColor, Param_NormalVolumeStyle, 2 );
PlotVAPOverlay ( Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPOverlay );
}
else if (displayStyle == "Volume at Price + Coloured Volume" )
{
Plot ( Volume, "Vol ", IIf ( C > O, Param_UpVolumeColor,Param_DownVolumeColor), Param_ColouredVolumeStyle, 2 );
PlotVAPOverlay ( Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPOverlay );
}
else if (displayStyle== "Volume at Price (grouped) + Volume" )
{
Plot ( Volume, "Vol ", Param_NormalVolumeColor, Param_NormalVolumeStyle, 2 );
PlotVAPOverlayA (segmentValue, Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPStyle | Param_VAPOverlay);
}
else if (displayStyle== "Volume at Price (grouped) + Coloured Volume" )
{
Plot ( Volume, "Vol ", IIf ( C > O, Param_UpVolumeColor,Param_DownVolumeColor), Param_ColouredVolumeStyle, 2 );
PlotVAPOverlayA (segmentValue, Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide | Param_VAPStyle | Param_VAPOverlay);
}
else if(displayStyle== "Customised VAP / candles" ) TA_ShowCustomizedVAP (Param_Segment,Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide,Param_VAPStyle,Param_VAPOverlay);
else if(displayStyle== "Customised VAP / candles + Volume" ) 
{
Plot ( Volume, "Vol ", Param_NormalVolumeColor, Param_NormalVolumeStyle, 2 );
TA_ShowCustomizedVAP (Param_Segment,Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide,Param_VAPStyle,Param_VAPOverlay);
}
else if(displayStyle== "Customised VAP / candles + Coloured Volume" ) 
{
Plot ( Volume, "Vol ", IIf ( C > O, Param_UpVolumeColor,Param_DownVolumeColor), Param_ColouredVolumeStyle, 2 );
TA_ShowCustomizedVAP (Param_Segment,Param_VAPLinesCount, Param_VAPLinesWidth, Param_VAPVolumeColor, Param_VAPSide,Param_VAPStyle,Param_VAPOverlay);
}
_SECTION_END ();
}
//=================== End of Volume Display================//
_SECTION_END();

_SECTION_BEGIN("T3");
function T3(price,periods)
{
 s = 0.84;
 e1=EMA(price,periods);
 e2=EMA(e1,Periods);
 e3=EMA(e2,Periods);
 e4=EMA(e3,Periods);
 e5=EMA(e4,Periods);
 e6=EMA(e5,Periods);
 c1=-s*s*s;
 c2=3*s*s+3*s*s*s;
 c3=-6*s*s-3*s-3*s*s*s;
 c4=1+3*s+s*s*s+3*s*s;
 Ti3=c1*e6+c2*e5+c3*e4+c4*e3;
 return ti3;
}

Plot(C,"",4,64);
Plot(T3(C,50),"T3",colorYellow,1);
Plot(t3(C,20),"T3",colorBlue,1);
_SECTION_END();
Thanx and regards
There is a plugin DLL behind this code and most of the errors are due to inappropriate cut-paste from the source
 
Hi!

I have a small request.Is there any way Wednesdays can be shown by afl. A simple arrow pointing to wednesday in a given chart would be enough.
RiddhiPD

Why do half-hearted work?

Here is the setup code that can be placed anywhere in AFL
Code:
weekDay = DayOfWeek();
_N(dayNames = "Sun,Mon,Tue,Wed,Thr,Fri,Sat,Sun");
Then anywhere in the title line assignment, you have to add following
Code:
... StrExtract(dayNames, SelectedValue(weekDay)) ...
For example

Code:
weekDay = DayOfWeek();
_N(dayNames = "Sun,Mon,Tue,Wed,Thr,Fri,Sat,Sun");

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} "  + StrExtract(dayNames, SelectedValue(weekDay))
+ " O=%0.2f| H=%0.2f| L=%0.2f| C=%0.2f (%.1f%%) 
, O, H, L, C, SelectedValue( ROC( C, 1 ) ) )  );
 
Hi Seniors,
I need your help in coding a simple strategy in amibroker.
The conditions are:--

For BUY=
1) Buy when candle closes above SMA 15( High)
2) and RSI(14) is <50

FOR SELL
1) SELL when candle closes below SMA 15 ( LOW)
2) RSI (14) is >50

Here the SMA prices is Hgh and Low and not the close price
Thanks
 
Any one can post working renko chart afl for ami 6.0

How to specify brick setting for each individual scrip?

thanks
Brick size in Renko defines threshold limit of the price movement. Any movement below that is to be considered insignificant regardless of time it takes and volume it consumes. So, biggest part of brick sizing is the renko trader's risk appetite

Since, the brick size has direct dependency of the actual underlying price and you can define some slab like structure

brickSize = IIF(Close > 1000, 10, IIf(Close > 900, 8, ...... IIf(Close > 10, 0.1, 0.01)));

Depth of the IIf statement and its sensitivity is completely your prerogative.
 
Last edited:

Similar threads