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

اسلام العوامى 12-10-2016 10:35 AM

كبسولات برمجية - طريقة كتابة كود ادارة رأس المال
 
،،،السلام عليكم ورحمة الله وبركاته،،،

،،،اعضاء وزوار ارابيا الكرام،،،

http://www.fx-arabia.com/vb/uploaded...1476257249.jpg

،،،نحتاج في بعض الاحيان ان يقوم الاكسبيرت بادارة راس المال للحساب وتحديد اللوت المناسب حسب نسبة المخاطرة التي نتبعها ، وطريقة كتابة هذا الكود كالتالي،،،
كود:

extern bool  UseMoneyManagement = false;
،،،اولا نقوم بحجز متغير خارجي من النوع bool ونعطية اسم USE_Money_Managment وكما تعلمنا سابقا المتغيرات من النوع bool تأخذ احدا القيمتان true او false وسنقوم باسناد القيمة true للمتغير اذا اردنا تشغيل ادارة راس المال والقيمة false اذا اردنا إلغائها والعمل بلوت نقوم بتحديده،،،
كود:

  extern int  RiskPercent = 10;
،،،ومتغير خارجي من النوع int ونعطيه اسم Risk_Percent والمتغيرات من النوع int تأخذ فقط قيمه عددية صحيحة بدون كسور عشرية ، وهذا المتغير سنقوم بكتابة نسبة المخاطرة المطلوبة به،،،
كود:

extern double Lot = 0.01;
،،،ومتغير خارجي من النوع double ونعطيه اسم Lot والمتغيرات من النوع double تأخذ قيمة عددية عشرية ، وهذا المتغير سنقوم بكتابة اللوت العادي به،،،

،،،المتغيرات السابقة يتم الاعلان عنها او كتابتها في Global Area او في بداية الكود قبل اي وظائف اخري،،،

،،،وسنقوم بكتابة الوظيفة التالية في اخر الكود،،،

كود:

double LotManage()
  {
      double lot = MathCeil(AccountFreeMargin() *  RiskPercent / 1000) / 100;
         
          if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
          if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
         
         
          return (lot);
  }

،،،في الكود السابق قمنا بكتابة وظيفة من النوع double واسميناها LotManage وقمنا باخبار الاكسبيرت ان يقوم بضرب الهامش الحر للحساب في نسبة المخاطرة التي حددناها سابقا من المتغير الخارجي RiskPercent ثم القسمة علي 1000 وتقريب الناتج الي اقل عدد صحيح وذلك عن طريق الوظيفة MathCeil ، ثم قمنا بقسمة الناتج علي 100،،،

،،،وفي السطور الباقية من الوظيفة قمنا باخبار الاكسبيرت اذا كان اللوت الناتج اقل من اقل لوت تقبله المنصة اجعل قيمة اللوت تساوي اقل لوت تقبله المنصة ، واذا كان اللوت الناتج اكبر من اكبر لوت تقبله المنصة اجعل قيمة اللوت تساوي اكبر لوت تقبله المنصة،،،

http://www.fx-arabia.com/vb/uploaded...1476257658.jpg

،،،بعد ذلك في بداية الوظيفة OnTick نقوم بكتابة الكود التالي،،،

كود:

  double Lots=Lot; 
  if(UseMoneyManagement){Lots=LotManage();}

،،،في السطر السابق قمنا بالاعلان عن متغير من النوع double واسميناه Lots واعطيناه قيمة المتغير الخارجي Lot ، وبعد ذلك قمنا باخبار الاكسبيرت اذا كانت قيمة المتغير UseMoneyManagement تساوي true قم باعطاء المتغير Lots قيمة الوظيفة LotManage،،،

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

bahoma31 26-10-2016 06:41 AM

رد: كبسولات برمجية - طريقة كتابة كود ادارة رأس المال
 
شكرا لك اخي على ما تقدمه على مدار هذه السنين من العطاء و اتمنى ان تكون في ميزان حسناتك
لقد قرأت تقريبا كل مواضيعك و حملت فيديوهاتك كلها و لكن للاسف الشرح الذي كنت تشرحه على نظام قديم لم يعد الان موجود تغيرت كثيرا عن السابق و هذا عائق كبير لمن يريد التعلم فهو لا يفهم الكود او المتغير و لما يريد كتابته يجد معلومات اخرى على منصته ليس مثل التي شرحت عليها و لا توجد اية فيديوهات عربية على الانترنت جديدة يشرح فيها على حسب هذه المنصة الحالية فياريت لو تنفردوا بتقديم دورة اخرى جديدة و ستكون اضافة كبيرة المنتدى و استفادة اكبر من قبل الاعضاء و آلاف الزوار و شكرا مسبقا

اسلام العوامى 26-10-2016 12:02 PM

رد: كبسولات برمجية - طريقة كتابة كود ادارة رأس المال
 
اقتباس:

المشاركة الأصلية كتبت بواسطة bahoma31 (المشاركة 890915)
شكرا لك اخي على ما تقدمه على مدار هذه السنين من العطاء و اتمنى ان تكون في ميزان حسناتك
لقد قرأت تقريبا كل مواضيعك و حملت فيديوهاتك كلها و لكن للاسف الشرح الذي كنت تشرحه على نظام قديم لم يعد الان موجود تغيرت كثيرا عن السابق و هذا عائق كبير لمن يريد التعلم فهو لا يفهم الكود او المتغير و لما يريد كتابته يجد معلومات اخرى على منصته ليس مثل التي شرحت عليها و لا توجد اية فيديوهات عربية على الانترنت جديدة يشرح فيها على حسب هذه المنصة الحالية فياريت لو تنفردوا بتقديم دورة اخرى جديدة و ستكون اضافة كبيرة المنتدى و استفادة اكبر من قبل الاعضاء و آلاف الزوار و شكرا مسبقا

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

،،،تقبل تحياتي،،،


الساعة الآن 09:33 PM

Powered by vBulletin® Copyright ©2000 - 2024

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