1 مرفق
ماهي آلية عمل هذه المعادله ؟ :)
السلام عليكم
مرحباً الجميع
وفقنا الله واياكم لما نحب ونرضى
المطلوب فضلاً :
(*) على ماذا يعتمد الدخول والخروج هنا ؟
ماهي آلية عمل المؤشر
أحاول اطور عليها واقلل من نسبة الخطأ والخطأ فيها قليل ...
شكراً لكم
كود PHP:
#property copyright "Farooq & Mohsen"
#property link ""
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green
int gi_76 = 110;
double gd_80 = 0.0;
double gd_88 = 0.0;
double gd_96 = 0.0;
double gd_104 = 0.0;
double gd_112 = 0.0;
double gd_120 = 0.0;
int gi_128 = 0;
double gd_132 = 0.0;
double gd_140 = 0.0;
bool gi_148 = TRUE;
int gi_152;
double gd_156 = 0.0;
double gd_164;
bool gi_172 = FALSE;
int gi_176;
double g_ibuf_180[];
double g_ibuf_184[];
int init() {
SetIndexBuffer(0, g_ibuf_180);
SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 4);
SetIndexArrow(0, SYMBOL_ARROWDOWN);
SetIndexBuffer(1, g_ibuf_184);
SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 4);
SetIndexArrow(1, SYMBOL_ARROWUP);
gi_152 = Bars;
//gi_176 = 99999999999999999999999999999999999999999999999999999999999;
return (0);
}
int deinit() {
Comment("");
return (0);
}
int start() {
bool li_8;
bool li_12;
bool li_16;
if (Time[0] <= gi_176) {
Comment("Sorry....Expired!!!!");
gi_172 = TRUE;
return (0);
}
if (gi_172 == TRUE) return (0);
int l_ind_counted_0 = IndicatorCounted();
if (l_ind_counted_0 < 0) return (-1);
int li_4 = Bars - l_ind_counted_0;
while (li_4 >= 0) {
if (li_4 > 0) {
gi_128 = 0;
if (Open[li_4] < Close[li_4]) gi_148 = TRUE;
else gi_148 = FALSE;
if (gi_148 == TRUE) {
gd_96 = Close[li_4] - Open[li_4];
gd_132 = High[li_4] - Close[li_4];
gd_140 = Open[li_4] - Low[li_4];
} else {
gd_96 = Open[li_4] - Close[li_4];
gd_132 = High[li_4] - Open[li_4];
gd_140 = Close[li_4] - Low[li_4];
}
if (gd_132 > gd_140) {
gd_80 = gd_132;
gd_88 = gd_140;
} else {
gd_80 = gd_140;
gd_88 = gd_132;
}
if (gd_88 == 0.0) gi_128 += 35;
else {
gd_104 = gd_96 / gd_88;
if (gd_104 > 3.0) gi_128 += 40;
else {
if (gd_104 > 2.0) gi_128 += 35;
else {
if (gd_104 > 1.0) gi_128 += 30;
else gi_128 -= 25;
}
}
}
if (gd_88 == 0.0) gi_128 += 40;
else {
gd_112 = gd_80 / gd_88;
if (gd_112 > 5.0) gi_128 += 40;
else {
if (gd_112 > 3.0) gi_128 += 35;
else {
if (gd_112 > 2.0) gi_128 += 30;
else gi_128 -= 30;
}
}
}
if (gd_96 == 0.0) gi_128 += 25;
else {
gd_120 = gd_80 / gd_96;
if (gd_120 > 3.0) gi_128 += 25;
else {
if (gd_120 > 2.0) gi_128 += 20;
else {
if (gd_120 > 1.0) gi_128 += 15;
else gi_128 -= 15;
}
}
}
if (gd_132 > gd_140) {
li_8 = FALSE;
li_12 = TRUE;
if (ArrayMaximum(High, 30, li_4) != li_4) li_12 = FALSE;
if (li_12 == TRUE) {
gi_128 += 40;
li_8 = TRUE;
}
if (li_8 == FALSE) {
if (ArrayMaximum(High, 20, li_4) != li_4) li_12 = FALSE;
if (li_12 == TRUE) {
gi_128 += 30;
li_8 = TRUE;
}
}
if (li_8 == FALSE) {
if (ArrayMaximum(High, 10, li_4) != li_4) li_12 = FALSE;
if (li_12 == TRUE) {
gi_128 += 25;
li_8 = TRUE;
}
}
if (li_8 == FALSE) {
if (ArrayMaximum(High, 5, li_4) != li_4) li_12 = FALSE;
if (li_12 == TRUE) {
gi_128 += 15;
li_8 = TRUE;
}
} else gi_128 -= 20;
}
if (gd_132 < gd_140) {
li_8 = FALSE;
li_16 = TRUE;
if (ArrayMinimum(Low, 30, li_4) != li_4) li_16 = FALSE;
if (li_16 == TRUE) {
gi_128 += 40;
li_8 = TRUE;
}
if (li_8 == FALSE) {
if (ArrayMinimum(Low, 20, li_4) != li_4) li_16 = FALSE;
if (li_16 == TRUE) {
gi_128 += 30;
li_8 = TRUE;
}
}
if (li_8 == FALSE) {
if (ArrayMinimum(Low, 10, li_4) != li_4) li_16 = FALSE;
if (li_16 == TRUE) {
gi_128 += 25;
li_8 = TRUE;
}
}
if (li_8 == FALSE) {
if (ArrayMinimum(Low, 5, li_4) != li_4) li_16 = FALSE;
if (li_16 == TRUE) {
gi_128 += 15;
li_8 = TRUE;
}
} else gi_128 -= 20;
}
}
if (gd_132 >= gd_140) {
if (gi_128 >= gi_76 && li_4 > 0) {
gd_164 = (High[li_4] - Low[li_4]) / 4.0;
gd_156 = Low[li_4] - gd_164;
if (Low[li_4 - 1] < gd_156) g_ibuf_180[li_4] = High[li_4] + 0.0003;
} else {
if (gi_128 >= gi_76 && li_4 <= 0)
if (Low[li_4] < gd_156) g_ibuf_180[li_4 + 1] = High[li_4 + 1] + 0.0003;
}
} else {
if (gi_128 >= gi_76 && li_4 > 0) {
gd_164 = (High[li_4] - Low[li_4]) / 4.0;
gd_156 = High[li_4] + gd_164;
if (High[li_4 - 1] > gd_156) g_ibuf_184[li_4] = Low[li_4] - 0.0003;
} else {
if (gi_128 >= gi_76 && li_4 <= 0)
if (High[li_4] > gd_156) g_ibuf_184[li_4 + 1] = Low[li_4 + 1] - 0.0003;
}
}
li_4--;
gi_152--;
}
return (0);
}