Yes I need this too.
I do not know the solution but will look into it some more,
and hopefully we can find out how solve it.
I do not know the solution but will look into it some more,
and hopefully we can find out how solve it.
Off the top of my head...not sure of the inside thingy
bool IsInsidePrev(int index)
{
//You might want to adjust this def.
if (Low[index - 1] < Low[index] && High[index - 1] > High[index])
{
return (true);
}
return (false);
}
//Start at index bars back
double GetStop(int index)
{
int counted = 0;
double lowest = 0;
while(counted < 3)
{
if (!IsInsidePrev(index))
{
counted++;
if (lowest == 0 || Low[index] < lowest) lowest = Low[index];
}
index++;
}
return (lowest - Point);
}
bool IsInsidePrev(int index)
{
//You might want to adjust this def.
if (Low[index - 1] < Low[index] && High[index - 1] > High[index])
{
return (true);
}
return (false);
}
//Start at index bars back
double GetStop(int index)
{
int counted = 0;
double lowest = 0;
while(counted < 3)
{
if (!IsInsidePrev(index))
{
counted++;
if (lowest == 0 || Low[index] < lowest) lowest = Low[index];
}
index++;
}
return (lowest - Point);
}
Thanks Craig for the code. I also put this code together and it seems to work well.
Wackena
int c, n, p; c=-1; n=0; p=0; while(n<6) { if(High[c]<High[c-1] && Low[c]>Low[c-1]) n-=1; if(High[c]<High[-c] ) n+=1; c--; p+=1; if(n==3) break; } ShortTS=High[Highest(NULL,0,MODE_HIGH,p,1)]; c=-1; p=0; while(n<6) { if(High[c]<High[c-1] && Low[c]>Low[c-1]) n-=1; if(Low[c]>Low[-c]) n+=1; c--; p+=1; if(n==3) break; } LongTS=Low[Lowest(NULL,0,MODE_LOW,p,1)];
Works well on daily charts. This is miners Stopplosssystem. Stopp adjusted only
if there is a new high or low, otherwise unchanged.
T. Bopp
Thank you very much for such a usefull info. it's exactlly what I was searching
for. better actually because I didn't think of the inside bar thing.
I managed to put the code to work, but I can't figure out where do you change the number of bars it looks for the highest and lowest. in this code it's set on 3, right? how do I change it? I tried some things but the more I try it out the less sense it seems to make. it seems to have to do with the
can you help me out here, the problem is that I don't really understand the code itself. I knew nothing about programing until a few days ago when I started exploring mql4.
I managed to put the code to work, but I can't figure out where do you change the number of bars it looks for the highest and lowest. in this code it's set on 3, right? how do I change it? I tried some things but the more I try it out the less sense it seems to make. it seems to have to do with the
while(n<6)and/or
if(n==3)
can you help me out here, the problem is that I don't really understand the code itself. I knew nothing about programing until a few days ago when I started exploring mql4.
I've refined the code as follows:
Wackena
int c, n, p; c=0; p=0; for(n=0;n<=6;n++) { if(High[c+1]<High[c+2] && Low[c+1]>Low[c+2]) {n--;} c++; p++; if(n==3) break; } double ShortTS=NormalizeDouble(High[iHighest(Symbol(),0,MODE_HIGH,p,1)],Digits); double LongTS=NormalizeDouble(Low[iLowest(Symbol(),0,MODE_LOW,p,1)],Digits);I use 6 cycles (n<=6) to allow for multiple descarded inner bars (n--). When it finds 3 good bars (n==3), it breaks out of scan cycle. Then the High{iHighest] and Low[iLowest] of the 3 good bars is found scanning back (p) number of bars (which includes both good and inner bars).
Wackena
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
1. Buy Trailing Stop - Set 1 pip below lowest bar in previous 3 bars excluding Inner Bars. Inner Bar is when one bar's high and low are within previous bar high and low. If this happens, exclude this bar and go back 1 more bar.
Wackena