اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   سؤال أو مشكل برمجي في التعامل مع قيمتين (https://fx-arabia.com/vb/showthread.php?t=53664)

عمر عمر 27-05-2016 07:57 PM

سؤال أو مشكل برمجي في التعامل مع قيمتين
 
السلام عليكم و رحمة الله

أهلا استاذ اسلام العوامي

يوجد عندي مشكلة برمجية أخرى واجهتني

راح أعطيك مثال

في حال اردت أن أضع شرط
اذا كان سعر فوق الموفنج يعطيني أو يكتبلي اشارة UP مثلا و تبقى مكتوبة الى غاية ان يصير السعر تحت الموفنج

كما في الصورة

http://www.fx-arabia.com/vb/uploaded...1464367604.png

في هذه الحالة نحن نتعامل مع موفنج واحد أي مع قيمة واحدة أو مستوى واحد
برمجت هذا الشرط بسيطة و قد قمت بذالك على الشكل التالي

كود:


double a = iClose(Symbol(),60,1);
double v = iMA(Symbol(),60,200,0,0,0,0);
string R = " ";

if(a>v)
{
R = "UP";
}

if(a<v)
{
R= "DOWN";
}

Comment(R);

و الأمرناجح بدون مشاكل

----

المشكل هو عندما اردت التعامل مع مستويين أو قيمتين

و هذه الصورة تشرح ذالك

http://www.fx-arabia.com/vb/uploaded...1464367787.png

اذا كان السعرفوق الموفنجين معا يعطيني UP
و اذا كان تحت الموفنجين يعطيني DOWN

المشكلة هي عندما يكون بينهما

اريده أن يبثت الاشارة السابقة القديمة مثلا كما في مثال الصورة
السعر كان اسفل الموفنجين كان DOWN لما صعد و اصبح بينهما بقي محافظ على اشارة down حتى اصبح فوقهما صار UP
نفس الشيئ عندمايكون في الأعلى و نازل . كان فوقهما معا باشارة UP لما صار بينهما بقي محافظ على اشارة UP حتى صار تحتهما معا

المشكل عندما برمجت ذالك بشكل عادي مثل مثال البرمجة الذي وضعته في البداية في الصورة الأولى
لما يكون السعر بينهما ( محصور بين قيمتي الموفنج ) يعطيني قيمة 0 أو قيمة لا شيئ
حيث أن المؤشر لا يتعرف هل السعر أتي من الأعلى أم من الأسفل !!

كيف يعرف المؤشر هل السعر كان فقوهما و نزل و صار محصورلكي يعطيه up
أو كان اسفلهما معا و صاعد و صار محصور بينها ليبقي الاشارة down الى غاية الصعود الكلي ؟؟؟

ملاحظة الموفنجين لا يتقطعات . يبقى دائما الأزرق وفق و الأحمر تحت
مثل موفنج high و موفنج low

أو مثل مستويات ال RSI مثلا اذا كان فوق ال 60 يعطينا UP و اذا كان تحت ال 40 يعطيما DOWN و اذا كان بينهما يعطينا الاشارة القديمة . حيث أن المستويين 60 و 40 لا يتقطعات . استحالة التقاطع

كيف يمكن برمجة ذالك و وضع هذا الشرط جزاك الله خيرا

اسلام العوامى 28-05-2016 10:37 AM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة عمر عمر (المشاركة 872239)
السلام عليكم و رحمة الله

أهلا استاذ اسلام العوامي

يوجد عندي مشكلة برمجية أخرى واجهتني

راح أعطيك مثال

في حال اردت أن أضع شرط
اذا كان سعر فوق الموفنج يعطيني أو يكتبلي اشارة UP مثلا و تبقى مكتوبة الى غاية ان يصير السعر تحت الموفنج

كما في الصورة

http://www.fx-arabia.com/vb/uploaded...1464367604.png

في هذه الحالة نحن نتعامل مع موفنج واحد أي مع قيمة واحدة أو مستوى واحد
برمجت هذا الشرط بسيطة و قد قمت بذالك على الشكل التالي

كود:


double a = iClose(Symbol(),60,1);
double v = iMA(Symbol(),60,200,0,0,0,0);
string R = " ";

if(a>v)
{
R = "UP";
}

if(a<v)
{
R= "DOWN";
}

Comment(R);

و الأمرناجح بدون مشاكل

----

المشكل هو عندما اردت التعامل مع مستويين أو قيمتين

و هذه الصورة تشرح ذالك

http://www.fx-arabia.com/vb/uploaded...1464367787.png

اذا كان السعرفوق الموفنجين معا يعطيني UP
و اذا كان تحت الموفنجين يعطيني DOWN

المشكلة هي عندما يكون بينهما

اريده أن يبثت الاشارة السابقة القديمة مثلا كما في مثال الصورة
السعر كان اسفل الموفنجين كان DOWN لما صعد و اصبح بينهما بقي محافظ على اشارة down حتى اصبح فوقهما صار UP
نفس الشيئ عندمايكون في الأعلى و نازل . كان فوقهما معا باشارة UP لما صار بينهما بقي محافظ على اشارة UP حتى صار تحتهما معا

المشكل عندما برمجت ذالك بشكل عادي مثل مثال البرمجة الذي وضعته في البداية في الصورة الأولى
لما يكون السعر بينهما ( محصور بين قيمتي الموفنج ) يعطيني قيمة 0 أو قيمة لا شيئ
حيث أن المؤشر لا يتعرف هل السعر أتي من الأعلى أم من الأسفل !!

كيف يعرف المؤشر هل السعر كان فقوهما و نزل و صار محصورلكي يعطيه up
أو كان اسفلهما معا و صاعد و صار محصور بينها ليبقي الاشارة down الى غاية الصعود الكلي ؟؟؟

ملاحظة الموفنجين لا يتقطعات . يبقى دائما الأزرق وفق و الأحمر تحت
مثل موفنج high و موفنج low

أو مثل مستويات ال RSI مثلا اذا كان فوق ال 60 يعطينا UP و اذا كان تحت ال 40 يعطيما DOWN و اذا كان بينهما يعطينا الاشارة القديمة . حيث أن المستويين 60 و 40 لا يتقطعات . استحالة التقاطع

كيف يمكن برمجة ذالك و وضع هذا الشرط جزاك الله خيرا

،،،وعليكم السلام ورحمة الله وبركاته،،،

،،،اهلا بك اخي الفاضل ، قم بتعريف المتغير R في بداية الكود مع المتغيرات الخارجية واجعله من النوع static،،،

كود:

static string R;
،،،تحياتي،،،

عمر عمر 28-05-2016 04:57 PM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
السلام عليكم

أخي اسلام هل قرأت جيدا الاشكال المطروح ؟؟

اضافة
static

لا يغير اي شيئ

اضفتها و بقي لما يكون يكون محصور بين القيمتين أو المستويين يعطيني اشارة أو قيمة لا شيئ

هذا مثال على ال RSI

عندمايكون أعلى 60 يعطيني UP
و عندما يكون تحت 40 يعطيني DOWN

لكن عندما يكون بينهما لا يعطيني شيئ و أنا اريده ان يثبت القيمة القديمة حتى يصعد أو ينزل فوق أو تحت احدى المستويين

كود:


double P = iRSI(Symbol(),60,14,PRICE_CLOSE,1);

static string R;

if(P>60)
{
R = "UP";
}

if(P<40)
{
R = "DOWN";
}

Comment(R);


هاهو الكود و قد تم اضافة static و بقيت نفس المشكلة

اسلام العوامى 28-05-2016 05:25 PM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة عمر عمر (المشاركة 872355)
السلام عليكم

أخي اسلام هل قرأت جيدا الاشكال المطروح ؟؟

اضافة
static

لا يغير اي شيئ

اضفتها و بقي لما يكون يكون محصور بين القيمتين أو المستويين يعطيني اشارة أو قيمة لا شيئ

هذا مثال على ال RSI

عندمايكون أعلى 60 يعطيني UP
و عندما يكون تحت 40 يعطيني DOWN

لكن عندما يكون بينهما لا يعطيني شيئ و أنا اريده ان يثبت القيمة القديمة حتى يصعد أو ينزل فوق أو تحت احدى المستويين

كود:


double P = iRSI(Symbol(),60,14,PRICE_CLOSE,1);

static string R;

if(P>60)
{
R = "UP";
}

if(P<40)
{
R = "DOWN";
}

Comment(R);


هاهو الكود و قد تم اضافة static و بقيت نفس المشكلة


،،،وعليكم السلام ورحمة الله وبركاته،،،

،،،نعم اخي الفاضل قرأت الاشكال المطروح جيدا ولكن يبدو انك لم تقرأ ردي جيدا ، قم بتعريف المتغير في اول الكود بعد المتغيرات الخارجية ، وقم بازالته من داخل Ontick لان الاكسبيرت في كل حركة سعرية يقوم بتصفير قيمة المتغير ويري هل تحقق الشرط ام لا ولكن اذا قمت بتعريفه في اول الكود بعد المتغيرات الخارجية او كتسمية صحيحة في Global area وجعلت المتغير static سيظل محتفظ بقيمته الاخيرة،،،

،،،تحياتي،،،

عمر عمر 28-05-2016 05:51 PM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة اسلام العوامى (المشاركة 872360)



،،،وعليكم السلام ورحمة الله وبركاته،،،

،،،نعم اخي الفاضل قرأت الاشكال المطروح جيدا ولكن يبدو انك لم تقرأ ردي جيدا ، قم بتعريف المتغير في اول الكود بعد المتغيرات الخارجية ، وقم بازالته من داخل Ontick لان الاكسبيرت في كل حركة سعرية يقوم بتصفير قيمة المتغير ويري هل تحقق الشرط ام لا ولكن اذا قمت بتعريفه في اول الكود بعد المتغيرات الخارجية او كتسمية صحيحة في Global area وجعلت المتغير static سيظل محتفظ بقيمته الاخيرة،،،

،،،تحياتي،،،

تمام

قمت بتعريفه في الأعلى خارج الأون تيك و بقي نفس المشكل

كود:


#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict
#property indicator_chart_window

static string R;
double P = iRSI(Symbol(),5,14,PRICE_CLOSE,1);

//+------------------------------------------------------------------+
//| Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
 
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

if(P>60)
{
R = "UP";
}

if(P<40)
{
R = "DOWN";
}



Comment(R);
 
//--- return value of prev_calculated for next call
  return(rates_total);
  }



كما ترى في الكود عرفته في الأعلى تمام

و لمايكون فوق 60 يعطيني up
و لما يكون تحت ال 40 يعطيني down

و لما يكون بينهما لا يزال لا يعطيني شيئ لا تزال المشكلة للأسف الشديد

:1 (75): :1 (75): :1 (75):

:1 (69): :1 (69): :1 (69):

اسلام العوامى 28-05-2016 06:01 PM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
1 مرفق
اقتباس:

المشاركة الأصلية كتبت بواسطة عمر عمر (المشاركة 872363)
تمام

قمت بتعريفه في الأعلى خارج الأون تيك و بقي نفس المشكل

كود:


#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict
#property indicator_chart_window

static string R;
double P = iRSI(Symbol(),5,14,PRICE_CLOSE,1);

//+------------------------------------------------------------------+
//| Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
 
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

if(P>60)
{
R = "UP";
}

if(P<40)
{
R = "DOWN";
}



Comment(R);
 
//--- return value of prev_calculated for next call
  return(rates_total);
  }



كما ترى في الكود عرفته في الأعلى تمام

و لمايكون فوق 60 يعطيني up
و لما يكون تحت ال 40 يعطيني down

و لما يكون بينهما لا يزال لا يعطيني شيئ لا تزال المشكلة للأسف الشديد

:1 (75): :1 (75): :1 (75):

:1 (69): :1 (69): :1 (69):


،،،تفضل اخي ، الكود مرفق،،،

،،،تحياتي،،،

عمر عمر 28-05-2016 06:38 PM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة اسلام العوامى (المشاركة 872367)



،،،تفضل اخي ، الكود مرفق،،،

،،،تحياتي،،،

نفس الشيئ
لا يضهر أي قيمة عندما يكون بينهما
شو الصورة

http://www.fx-arabia.com/vb/uploaded...1464449694.png

المفروض أنه يكتب UP لأنه كان في الأعلى و لم ينزل بعد تحت ال 40
بعد نزول تحت ال 40 يغير الاشارة لتصبح DOWN

لكن كما ترى في الصورة لما يكون بينهما لا يضهر شيئ
و المؤشر المجرب هنا هو مؤشرك الذي ارفقته لي

في انتضار ردك
مشكور جدا على ردك السريع ربنا يجازيك و يجعل مساعدتك لي في ميزان حساناتك

اسلام العوامى 29-05-2016 11:42 AM

رد: سؤال أو مشكل برمجي في التعامل مع قيمتين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة عمر عمر (المشاركة 872369)
نفس الشيئ
لا يضهر أي قيمة عندما يكون بينهما
شو الصورة

http://www.fx-arabia.com/vb/uploaded...1464449694.png

المفروض أنه يكتب UP لأنه كان في الأعلى و لم ينزل بعد تحت ال 40
بعد نزول تحت ال 40 يغير الاشارة لتصبح DOWN

لكن كما ترى في الصورة لما يكون بينهما لا يضهر شيئ
و المؤشر المجرب هنا هو مؤشرك الذي ارفقته لي

في انتضار ردك
مشكور جدا على ردك السريع ربنا يجازيك و يجعل مساعدتك لي في ميزان حساناتك

،،،اهلا بك اخي الفاضل ، انتظر افتتاح السوق وظهور اول اشارة وستظل ثابته بعدها،،،

،،،تحياتي،،،


الساعة الآن 01:15 PM

Powered by vBulletin® Copyright ©2000 - 2024

جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com