اف اكس ارابيا..الموقع الرائد فى تعليم فوركس 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=56760)

salamandal 26-04-2017 10:27 AM

سؤال برمجي
 
السلام عليكم

معظم الدوال المستعملة لاخذ الربح و غلق الصفقات تكون على الشكل التالي

}(if(AccountProfit()>=USD_Profit && Use_USD_Profit==true

{; ()CloseOrders

اي انها تغلق جميع الصفقات عند الوصول الى ربح محدد

كيف استطيع تعديل الشروط بحيث يكون اغلاق الصفقات كالتالي

يقوم الاكسبرت بحساب الربح المحقق من صفقات الشراء . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات الشراء فقط
;( closeorders(OP_BUY

يقوم الاكسبرت بحساب الربح المحقق من صفقات البيع . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات البيع فقط
;( closeorders(OP_SELL

اسلام العوامى 26-04-2017 12:30 PM

رد: سؤال برمجي
 
اقتباس:

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

معظم الدوال المستعملة لاخذ الربح و غلق الصفقات تكون على الشكل التالي

}(if(AccountProfit()>=USD_Profit && Use_USD_Profit==true

{; ()CloseOrders

اي انها تغلق جميع الصفقات عند الوصول الى ربح محدد

كيف استطيع تعديل الشروط بحيث يكون اغلاق الصفقات كالتالي

يقوم الاكسبرت بحساب الربح المحقق من صفقات الشراء . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات الشراء فقط
;( closeorders(OP_BUY

يقوم الاكسبرت بحساب الربح المحقق من صفقات البيع . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات البيع فقط
;( closeorders(OP_SELL

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

،،،اهلا بك اخي الفاضل ، يتم عمل وظيفة خارجية لحساب مجموع ربح صفقات الاتجاه المحدد،،،

كود:

    double Sym_Pro(int ty){
 double cnt=0;
  for(int xxi =0;xxi<OrdersTotal();xxi++){
    if(OrderSelect(xxi,SELECT_BY_POS,MODE_TRADES)){
      if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==ty){
        cnt = OrderProfit()+cnt;
      }
    }
  }
    return(cnt);
  }

،،،ثم يتم استدعاء الوظيفة من خلال شرط المقارنة،،،

كود:

if(Sym_Pro(OP_BUY)>=USD_Profit && Use_USD_Profit==true){Close Buy}
if(Sym_Pro(OP_SELL)>=USD_Profit && Use_USD_Profit==true){Close Sell}

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

salamandal 26-04-2017 04:08 PM

رد: سؤال برمجي
 
بارك الله فيك استاذ اسلام
ما شاء الله على الاجابة الحلوة

salamandal 27-04-2017 01:27 PM

رد: سؤال برمجي
 
اقتباس:

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


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

،،،اهلا بك اخي الفاضل ، يتم عمل وظيفة خارجية لحساب مجموع ربح صفقات الاتجاه المحدد،،،

كود:

    double Sym_Pro(int ty){
 double cnt=0;
  for(int xxi =0;xxi<OrdersTotal();xxi++){
    if(OrderSelect(xxi,SELECT_BY_POS,MODE_TRADES)){
      if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==ty){
        cnt = OrderProfit()+cnt;
      }
    }
  }
    return(cnt);
  }

،،،ثم يتم استدعاء الوظيفة من خلال شرط المقارنة،،،

كود:

if(Sym_Pro(OP_BUY)>=USD_Profit && Use_USD_Profit==true){Close Buy}
if(Sym_Pro(OP_SELL)>=USD_Profit && Use_USD_Profit==true){Close Sell}

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

استاذ اسلام السطرين الاخيرين لم يعملا كما ينبغي وظهر خطأ في الجورنال

http://www9.0zz0.com/2017/04/27/13/880240172.jpg

وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور

http://www12.0zz0.com/2017/04/27/13/741598975.jpg

وقد عمل الاكسبرت دون اخطاء لكنه يغلق صفقة واحدة فقط في الاتجاه و دون الوصول الى القيمة المحددة في USD_Profit
اعتقد انه باغلاق الصفقات الاخري يتحقق المطلوب
اليك الان كود الدالة التي استعملها لاغلاق الصفقات حسب الاتجاه

http://www13.0zz0.com/2017/04/27/13/395737467.jpg

كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا

لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ

اسلام العوامى 27-04-2017 01:34 PM

رد: سؤال برمجي
 
اقتباس:

المشاركة الأصلية كتبت بواسطة salamandal (المشاركة 910556)
استاذ اسلام السطرين الاخيرين لم يعملا كما ينبغي وظهر خطأ في الجورنال

http://www9.0zz0.com/2017/04/27/13/880240172.jpg

وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور

http://www12.0zz0.com/2017/04/27/13/741598975.jpg

وقد عمل الاكسبرت دون اخطاء لكنه يغلق صفقة واحدة فقط في الاتجاه و دون الوصول الى القيمة المحددة في USD_Profit
اعتقد انه باغلاق الصفقات الاخري يتحقق المطلوب
اليك الان كود الدالة التي استعملها لاغلاق الصفقات حسب الاتجاه

http://www13.0zz0.com/2017/04/27/13/395737467.jpg

كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا

لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ

،،،اهلا بك اخي الفاضل ، اخر سطرين المقصود ب Close Buy و Close Sell هو امر او وظيفة الاغلاق فيجب انشاء وظيفة خارجية لاغلاق صفقات الشراء فقط ووظيفة اخرى لاغلاق صفقات البيع فقط،،،

كود:

void CloseBuyOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderType()==OP_BUY&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Bid,3);
        if(result)
        cnt--;
  }


void CloseSellOrders()
{
  for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
  {
  bool result = false;
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if ( OrderSymbol()==Symbol()&&OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
        result = OrderClose(OrderTicket(),OrderLots(),Ask,3);
        if(result)
        cnt--;
  }
}

،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،

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

salamandal 27-04-2017 04:43 PM

رد: سؤال برمجي
 
اقتباس:

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


،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،

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

شكرا على كل شئ استاذ اسلام
بارك الله فيك

http://www2.0zz0.com/2017/04/27/16/298154101.gif


الساعة الآن 11:21 PM

Powered by vBulletin® Copyright ©2000 - 2024

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