You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
I have built a modified renko indicator that overlays a 1M or range bar chart on ninjatrader. I need some help converting it to mql4.
My renko bars handle gaps. Any help would be appreciated. Here is my attempt but I it wont compile.
private int myInput0 = 8; // Default setting for MyInput0
private bool firstBar = true;
private double renkoHi = 0;
private double renkoLo =0;
private double renkoMid =0;
private double renkoHalf=0;
private double fBar=0;
private bool upBar= false;
private bool gapBar=false;
private double gBar=0;
private int gInt=0;
protected override void OnBarUpdate()
{
if(CurrentBar<10)
{
return;}
if (firstBar== true
)
{ fBar= Close[1];
if (Close[0]>=fBar+(myInput0*TickSize))
{
upBar=true;
firstBar=false;
renkoHi= fBar+(myInput0*TickSize);
renkoLo= renkoHi-(myInput0*TickSize);
renkoMid=renkoLo;
}
if (Close[0]<=fBar-(myInput0*TickSize))
{
upBar=false;
renkoLo= fBar-(myInput0*TickSize);
renkoHi= renkoLo+(myInput0*TickSize);
renkoMid=renkoHi;
firstBar=false;
}}
if (firstBar==false)
{
if( GetCurrentBid()-Close[1]>(myInput0*TickSize)
&& GetCurrentBid() > renkoHi+(myInput0*TickSize))
{
gBar= ( GetCurrentBid()-Close[1])/TickSize/myInput0;
gInt= (int)gBar;
//Print(gBar+"ghi"+gInt);
renkoHi=renkoHi+((myInput0*gInt)*TickSize);
renkoLo= renkoHi-(myInput0*TickSize);
renkoMid=renkoLo;
upBar=true;}
if(Close[1]-Close[0]>(myInput0*TickSize)
&& GetCurrentBid()< renkoLo-(myInput0*TickSize))
{
gBar= (GetCurrentBid()-Close[1])/TickSize/myInput0;
gInt= (int)gBar;
//Print(gBar+"glo"+gInt);
renkoLo= renkoLo+(myInput0*TickSize)*gInt;
renkoHi=renkoLo+(myInput0*TickSize);
renkoMid=renkoLo;
upBar=false;}
if (upBar== true
&& GetCurrentBid() >= renkoHi+(myInput0*TickSize))
{
renkoHi=renkoHi+(myInput0*TickSize);
renkoLo= renkoHi-(myInput0*TickSize);
renkoMid=renkoLo;}
if (upBar== false
&& GetCurrentBid()<= renkoLo-(myInput0*TickSize))
{
renkoLo=renkoLo-(myInput0*TickSize);
renkoHi= renkoLo+(myInput0*TickSize);
renkoMid=renkoHi;}
// reverse
if (upBar== true
&& GetCurrentBid() <= renkoLo-(myInput0*TickSize))
{
renkoMid=renkoLo;
renkoLo= renkoLo-(myInput0*TickSize);
renkoHi=renkoLo+(myInput0*TickSize);
upBar=false;}
if (upBar== false
&& GetCurrentBid()>= renkoHi+(myInput0*TickSize))
{
renkoMid=renkoHi;
renkoHi=renkoHi+(myInput0*TickSize);
renkoLo= renkoHi-(myInput0*TickSize);
upBar= true;}
if (upBar== true && GetCurrentBid()>=renkoHi+(.5*myInput0*TickSize))
{
renkoHalf=renkoHi-(.5*myInput0*TickSize);}
if (upBar== false && GetCurrentBid()<=renkoLo-(.5*myInput0*TickSize))
{
renkoHalf=renkoLo+(.5*myInput0*TickSize);}
}
Plot0.Set(renkoHi);
Plot1.Set(renkoLo);
Plot2.Set(renkoHalf);
Plot3.Set(renkoMid);
}