لقد اعتدت استخدام 8 MTF_MA.mq4 وتعبئتها في قالب. ومع ذلك ، أريد دمجها في 1 mq4. أقوم بتعديل الكود ، لكنه يوجه الكثير من موارد وحدة المعالجة المركزية ويبطئ جهاز الكمبيوتر.

هل هناك شيء خاطئ في البرنامج؟ الرجاء المساعدة!

----------------------------

#property حقوق الطبع والنشر؟ 2007-08 ، TrendLaboratory
# رابط الملكية http://finance.groups.yahoo.com/group/TrendLaboratory

#property indior_chart_window
#property indior_buffers 8
#property indior_color1 Chocolate
#property indior_color2 FireBrick
#property indior_color3 FireBrick
#property indior_color4 Chocolate
#property indior_color5 FireBrick
#property indior_color6 FireBrick
#property indior_color7 FireBrick
#property indior_color8 FireBrick
#property indior_width1 1
#property indior_width2 1
#property indior_width3 1
#property indior_width4 1
#property indior_width5 1
#property indior_width6 2
#property indior_width7 2
#property indior_width8 2


//string short_name؛

// ----------------------------------------------- -------------------
//| وظيفة التهيئة الداخلية المخصصة |
// ----------------------------------------------- -------------------
int init ()
{
//----
//IndiorDigits (MarketInfo (رمز ()، MODE_DIGITS) 2)؛
SetIndexStyle (0، DRAW_LINE)؛
SetIndexStyle (1، DRAW_LINE)؛
SetIndexStyle (2، DRAW_LINE)؛
SetIndexStyle (3، DRAW_LINE)؛
SetIndexStyle (4، DRAW_LINE)؛
SetIndexStyle (5، DRAW_LINE)؛
SetIndexStyle (6، DRAW_LINE)؛
SetIndexStyle (7، DRAW_LINE)؛
عودة (0)؛
}
// ----------------------------------------------- -------------------
//| AllAverages_v2.2 |
// ----------------------------------------------- -------------------
بداية int ()
{

DrawEMA (5 ، 10 ، 0) ؛
DrawEMA (5 ، 50 ، 1) ؛
DrawEMA (15 ، 50 ، 2) ؛
DrawEMA (60 ، 10 ، 3) ؛
DrawEMA (60 ، 50 ، 4) ؛
DrawEMA (60 ، 200 ، 5) ؛
DrawEMA (1440 ، 10 ، 6) ؛
DrawEMA (1440 ، 50 ، 7) ؛
عودة (0)؛
}


int DrawEMA (int TimeFrame ، int MA_Period ، int LineNo)
{
int limit، y، i، shift، mBars، mcnt_bars، draw_begin، cnt_bars = IndiorCounted ()؛
double aPrice []، MA []، mMA []؛

التبديل (الإطار الزمني)
{
الحالة 1: السلسلة TF = M1 ؛ استراحة؛
الحالة 5: TF = M5 ؛ استراحة؛
الحالة 15: TF = M15 ؛ استراحة؛
الحالة 30: TF = M30 ؛ استراحة؛
الحالة 60: TF = H1 ؛ استراحة؛
الحالة 240: TF = H4 ؛ استراحة؛
الحالة 1440: TF = D1 ؛ استراحة؛
}
draw_begin = MA_Period * الإطار الزمنيالفترة ()؛
SetIndexDrawBegin (LineNo، draw_begin)؛
SetIndexLabel (LineNo، TF ( MA_Period ))؛
SetIndexBuffer (LineNo، MA)؛

if (TimeFrame! = Period ()) mBars = iBars (NULL، TimeFrame)؛ mBars آخر = أشرطة؛

ArrayResize (aPrice، mBars)؛
ArrayResize (مجلس العمل المتحد، mBars)؛

إذا (cnt_barslt؛ 1)
{
ل(ط = 1؛ ILT؛ = draw_begin، وأنا )
{
MA [البارات ط] = IMA (NULL، الإطار الزمني، 1،0،0،0، البارات ط)؛
}
mcnt_bars = 0؛
}

إذا كان (mcnt_bars gt؛ 0) mcnt_bars--؛

ل(ذ = mcnt_bars، ylt، mBars، ذ )
{
aPrice [y] = iMA (NULL، TimeFrame، 1،0،0،0، mBars-y-1)؛
mMA [y] = EMA (aPrice [y]، mMA، MA_Period، y)؛
إذا (الإطار الزمني == الفترة ())
{
MA [mBars-y-1] = mMA [y]؛
}
}
mcnt_bars = mBars-1؛

إذا (الإطار الزمني gt ؛ الفترة ())
{
if (cnt_barsgt؛ 0) cnt_bars--؛
limit = Bars-cnt_bars TimeFramePeriod () - 1؛

ل(التحول = 0، ص = 0؛ shiftlt، الحد، تحول )
{
if (Time [shift] lt؛ iTime (NULL، TimeFrame، y)) y ؛
MA [shift] = mMA [mBars-y-1] ؛
}
}
إرجاع؛
}


EMA مزدوج (سعر مزدوج ، صفيف مزدوج [] ، int لكل ، شريط int)
{
إذا (bar == 2) double ema = price؛
آخر
إذا كان (bar gt؛ 2) ema = array [bar-1] 2.0(1 per) * (السعر - مجموعة [bar-1]) ؛
عودة (ايما)؛
}