0
Views
0
Downloads
0
Favorites
asys_fibo
//+------------------------------------------------------------------+
//|Harmonic leftbrain_v2.mq4 |
//|Harmonic Copyright © 2006, Akuma99. |
//| http://www.beginnertrader.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Akuma99."
#property link "http://www.beginnertrader.com"
#property indicator_chart_window
extern int fib_number=180;
extern int stickyBuffer=5;
extern int sets=25;
extern bool override=false;
extern double baseline=0.0;
double base1000[200], base382[200], base236[200], base146[200], base90[200], base50[200];
int deinit() {
clearBuffers();
return(0);
}
int start() {
double bases[200];
double base;
int lineWidth;
if (override == false) {
string sym = Symbol();
if (sym == "EURUSD") base=1.2000;
if (sym == "USDCHF") base=1.2000;
if (sym == "USDCAD") base=1.2000;
if (sym == "GBPUSD") base=2.0000;
if (sym == "GBPCHF") base=2.0000;
if (sym == "EURAUD") base=2.0000;
if (sym == "USDJPY") base=100.00;
if (sym == "AUDJPY") base=100.00;
if (sym == "CHFJPY") base=100.00;
if (sym == "CADJPY") base=100.00;
if (sym == "NZDJPY") base=100.00;
if (sym == "EURJPY") base=120.00;
if (sym == "GBPJPY") base=200.00;
if (sym == "USDCNY") base=8.0000;
if (sym == "EURCHF") base=1.5000;
if (sym == "AUDUSD") base=1.0000;
if (sym == "EURGBP") base=1.0000;
if (sym == "AUDCAD") base=1.0000;
if (sym == "NZDUSD") base=0.5000;
for (int i=99; i>0; i--) {
bases[i] = base-((fib_number*Point)*(100-i));
base1000[i] = base-((1000*Point)*(100-i));
base382[i] = base-((382*Point)*(100-i));
base236[i] = base-((236*Point)*(100-i));
base146[i] = base-((146*Point)*(100-i));
base90[i] = base-((90*Point)*(100-i));
base50[i] = base-((50*Point)*(100-i));
}
bases[100] = base;
base1000[100] = base;
base382[100] = base;
base236[100] = base;
base146[100] = base;
base90[100] = base;
base50[100] = base;
for (i=101; i<201; i++) {
bases[i] = base+((fib_number*Point)*(i-100));
base1000[i] = base+((1000*Point)*(i-100));
base382[i] = base+((382*Point)*(i-100));
base236[i] = base+((236*Point)*(i-100));
base146[i] = base+((146*Point)*(i-100));
base90[i] = base+((90*Point)*(i-100));
base50[i] = base+((50*Point)*(i-100));
}
baseline = bases[ArrayBsearch(bases,Close[1],WHOLE_ARRAY,0,MODE_ASCEND)];
}
double b;
double bottom = baseline-((fib_number*(sets+1))*Point);
int s = sets*2;
// draw sets above baseline
for (i=1; i<=s; i++) {
b = bottom+((fib_number*i)*Point);
lineWidth = getStickyValue(b);
ObjectCreate("Harmonic Base line "+fib_number+" "+i, OBJ_HLINE, 0, Time[40], b);
ObjectSet("Harmonic Base line "+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic Base line "+fib_number+" "+i, "Harmonic baseline ("+DoubleToStr(b,4)+") ["+lineWidth+"]", 8, "Tahoma", Green);
if (lineWidth > 0) {
ObjectSet("Harmonic Base line "+fib_number+" "+i, OBJPROP_COLOR, Red);
} else {
ObjectSet("Harmonic Base line "+fib_number+" "+i, OBJPROP_COLOR, LimeGreen);
}
}
setFibonaccis(bottom);
Comment("" + fib_number + " Harmonic Fibo by Akuma99 and Accrete",
"\n1/2 Beat Harmonics on a " + DoubleToStr(baseline,4)," Baseline",
"\nVisit beginnertrader.com and accrete.com :-)",);
// "\nBaseline used: " + DoubleToStr(baseline,4)," with 1/2Beat Harmonics and 34CHLema Tunnel",);
return(0);
}
void setFibonaccis (double b) {
double f146,f236,f382,f50,f618,f764,f854,b1;
int lineWidth;
lineWidth = getStickyValue(f146);
int i;
int s = sets*2;
// draw sets above baseline
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f146 = b1+((fib_number*0.146)*Point);
lineWidth = getStickyValue(f146);
ObjectCreate("Harmonic f146"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f146);
ObjectSet("Harmonic f146"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f146"+fib_number+" "+i, "Harmonic 14.6% ("+DoubleToStr(f146,4)+") ["+lineWidth+"]", 8, "Tahoma", Purple);
if (lineWidth > 0) {
ObjectSet("Harmonic f146"+fib_number+" "+i, OBJPROP_COLOR, FireBrick);
} else {
ObjectSet("Harmonic f146"+fib_number+" "+i, OBJPROP_COLOR, Purple);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f236 = b1+((fib_number*0.236)*Point);
lineWidth = getStickyValue(f236);
ObjectCreate("Harmonic f236"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f236);
ObjectSet("Harmonic f236"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f236"+fib_number+" "+i, "Harmonic 23.6% ("+DoubleToStr(f236,4)+") ["+lineWidth+"]", 8, "Tahoma", Purple);
if (lineWidth > 0) {
ObjectSet("Harmonic f236"+fib_number+" "+i, OBJPROP_COLOR, Orange);
} else {
ObjectSet("Harmonic f236"+fib_number+" "+i, OBJPROP_COLOR, Aqua);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f382 = b1+((fib_number*0.382)*Point);
lineWidth = getStickyValue(f382);
ObjectCreate("Harmonic f382"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f382);
ObjectSet("Harmonic f382"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f382"+fib_number+" "+i, "Harmonic 38.2% ("+DoubleToStr(f382,4)+") ["+lineWidth+"]", 8, "Tahoma", Green);
if (lineWidth > 0) {
ObjectSet("Harmonic f382"+fib_number+" "+i, OBJPROP_COLOR, Orange);
} else {
ObjectSet("Harmonic f382"+fib_number+" "+i, OBJPROP_COLOR, Aqua);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f50 = b1+((fib_number*0.500)*Point);
lineWidth = getStickyValue(f50);
ObjectCreate("Harmonic f50"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f50);
ObjectSet("Harmonic f50"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f50"+fib_number+" "+i, "Harmonic 50.0% ("+DoubleToStr(f50,4)+") ["+lineWidth+"]", 8, "Tahoma", Green);
if (lineWidth > 0) {
ObjectSet("Harmonic f50"+fib_number+" "+i, OBJPROP_COLOR, Orange);
} else {
ObjectSet("Harmonic f50"+fib_number+" "+i, OBJPROP_COLOR, Aqua);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f618 = b1+((fib_number*0.618)*Point);
lineWidth = getStickyValue(f618);
ObjectCreate("Harmonic f618"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f618);
ObjectSet("Harmonic f618"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f618"+fib_number+" "+i, "Harmonic 61.8% ("+DoubleToStr(f618,4)+") ["+lineWidth+"]", 8, "Tahoma", Green);
if (lineWidth > 0) {
ObjectSet("Harmonic f618"+fib_number+" "+i, OBJPROP_COLOR, Orange);
} else {
ObjectSet("Harmonic f618"+fib_number+" "+i, OBJPROP_COLOR, Aqua);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f764 = b1+((fib_number*0.764)*Point);
lineWidth = getStickyValue(f764);
ObjectCreate("Harmonic f764"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f764);
ObjectSet("Harmonic f764"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f764"+fib_number+" "+i, "Harmonic 76.4% ("+DoubleToStr(f764,4)+") ["+lineWidth+"]", 8, "Tahoma", Green);
if (lineWidth > 0) {
ObjectSet("Harmonic f764"+fib_number+" "+i, OBJPROP_COLOR, Orange);
} else {
ObjectSet("Harmonic f764"+fib_number+" "+i, OBJPROP_COLOR, Aqua);
}
}
for (i=1; i<=s; i++) {
b1 = b+((fib_number*i)*Point);
f854 = b1+((fib_number*0.854)*Point);
lineWidth = getStickyValue(f764);
ObjectCreate("Harmonic f854"+fib_number+" "+i, OBJ_HLINE, 0, Time[40], f854);
ObjectSet("Harmonic f854"+fib_number+" "+i, OBJPROP_STYLE, STYLE_SOLID);
ObjectSetText("Harmonic f854"+fib_number+" "+i, "Harmonic 85.4% ("+DoubleToStr(f854,4)+") ["+lineWidth+"]", 8, "Tahoma", Purple);
if (lineWidth > 0) {
ObjectSet("Harmonic f854"+fib_number+" "+i, OBJPROP_COLOR, FireBrick);
} else {
ObjectSet("Harmonic f854"+fib_number+" "+i, OBJPROP_COLOR, Purple);
}
}
return(0);
}
int getStickyValue (double val) {
int cnt=0;
for (int i=0; i<201; i++) {
if ((base1000[i] >= val-stickyBuffer*Point) && (base1000[i] <= val+stickyBuffer*Point) && fib_number != 1000) cnt++;
if ((base382[i] >= val-stickyBuffer*Point) && (base382[i] <= val+stickyBuffer*Point) && fib_number != 382) cnt++;
if ((base236[i] >= val-stickyBuffer*Point) && (base236[i] <= val+stickyBuffer*Point) && fib_number != 236) cnt++;
if ((base146[i] >= val-stickyBuffer*Point) && (base146[i] <= val+stickyBuffer*Point) && fib_number != 146) cnt++;
if ((base90[i] >= val-stickyBuffer*Point) && (base90[i] <= val+stickyBuffer*Point) && fib_number != 90) cnt++;
if ((base50[i] >= val-stickyBuffer*Point) && (base50[i] <= val+stickyBuffer*Point) && fib_number != 50) cnt++;
}
return (cnt);
}
void clearBuffers () {
int s = sets*2, i;
for (i=1; i<=s; i++) {
ObjectDelete("Harmonic f854"+fib_number+" "+i);
ObjectDelete("Harmonic f764"+fib_number+" "+i);
ObjectDelete("Harmonic f618"+fib_number+" "+i);
ObjectDelete("Harmonic f50"+fib_number+" "+i);
ObjectDelete("Harmonic f382"+fib_number+" "+i);
ObjectDelete("Harmonic f236"+fib_number+" "+i);
ObjectDelete("Harmonic f146"+fib_number+" "+i);
ObjectDelete("Harmonic Base line "+fib_number+" "+i);
}
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---