منتديات بورصات

منتديات بورصات (https://forum.borsaat.com/)
-   منتدى المؤشرات و الاكسبرتات (https://forum.borsaat.com/f14/)
-   -   تبادل الخبرات في برمجة MQL (https://forum.borsaat.com/t933685.html)

abo_samar 26 - 09 - 2018 05:19 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة kazamadrid (المشاركة 2520381)
كود:

void DoAlert(string UD)
{
  if (!NewBar() || !Use_Sound)
      return;
    PlaySound ("Alert2");
    Alert (Symbol()," ",Period(),"m  Boll Touch at ",UD);
}




  bool NewBar()
{
  static datetime dt  = 0;
  if (dt != Time[0])
  {
      dt = Time[0];
      return(true);
  }
  }

يظهر الخطا التالي
"Not all control paths return a value" error
ما هو الحل

الداله void لا تعود بقيمه
مهمتها تنفيذ امر
لذا يجب حذف جواب الشرط return

والداله bool يجب ان تعود باحد القيمتين
اما true او false
وتكون return قبل القوس الاخير

kazamadrid 26 - 09 - 2018 06:21 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abo_samar (المشاركة 2520401)
الداله void لا تعود بقيمه
مهمتها تنفيذ امر
لذا يجب حذف جواب الشرط return

والداله bool يجب ان تعود باحد القيمتين
اما true او false
وتكون return قبل القوس الاخير


يعني كيف لم افهم !!!

abo_samar 26 - 09 - 2018 07:59 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة kazamadrid (المشاركة 2520403)
يعني كيف لم افهم !!!

كود:

void DoAlert(string UD)
{
  if (!NewBar() || !Use_Sound)
    PlaySound ("Alert2");
    Alert (Symbol()," ",Period(),"m  Boll Touch at ",UD);
}




  bool NewBar()
{
  static datetime dt  = 0;
  if (dt != Time[0])
  {
      dt = Time[0];
    }
    return(true);
  }


kazamadrid 26 - 09 - 2018 08:30 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abo_samar (المشاركة 2520416)
كود:

void DoAlert(string UD)
{
  if (!NewBar() || !Use_Sound)
    PlaySound ("Alert2");
    Alert (Symbol()," ",Period(),"m  Boll Touch at ",UD);
}




  bool NewBar()
{
  static datetime dt  = 0;
  if (dt != Time[0])
  {
      dt = Time[0];
    }
    return(true);
  }


بارك الله فيك تمام 10/10

kazamadrid 26 - 09 - 2018 08:37 PM

رد: تبادل الخبرات في برمجة MQL
 


في كود يحتاج نعديل و لكنه صعب قليلا من لديه فكرة يفدنا بها ..الخطا هو 'return' - function must return a value
كود:

int start() {
  int l_stoplevel_8;
  int l_spread_12;
  double l_point_16;
  double l_bid_24;
  double l_ask_32;
  int li_unused_40;
  double l_minlot_44;
  double l_lotstep_52;
  double ld_60;
  int li_68;
  int li_72;
  int li_76;
  int li_80;
  int li_84;
  int li_88;
  bool li_92;
  bool li_96;
  bool li_100;
  bool li_104;
  double ld_108;
  double ld_116;
  string ls_0 = Symbol();

  if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) {
      Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
        ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
      Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
        ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
      Sleep(1000);
     
      return;
  }



]

kazamadrid 26 - 09 - 2018 09:29 PM

رد: تبادل الخبرات في برمجة MQL
 


في كود تقريبا اكثر من شهر لم اجد اين يوضع بالضبط و هو

كود:

//+------------------------------------------------------------------+
//| Check the correctness of the order volume                        |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
  {
//--- minimal allowed volume for trade operations
  double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
  if(volume<min_volume)
    {
      description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume);
      return(false);
    }

//--- maximal allowed volume of trade operations
  double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
  if(volume>max_volume)
    {
      description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume);
      return(false);
    }

//--- get minimal step of volume changing
  double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

  int ratio=(int)MathRound(volume/volume_step);
  if(MathAbs(ratio*volume_step-volume)>0.0000001)
    {
      description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f",
                              volume_step,ratio*volume_step);
      return(false);
    }
  description="Correct volume value";
  return(true);
  }




abo_samar 26 - 09 - 2018 10:37 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة kazamadrid (المشاركة 2520425)
بارك الله فيك تمام 10/10

جزاك الله خيرا
بالتوفيق ان شاء الله

abo_samar 26 - 09 - 2018 10:41 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

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


في كود يحتاج نعديل و لكنه صعب قليلا من لديه فكرة يفدنا بها ..الخطا هو 'return' - function must return a value
كود:

int start() {
  int l_stoplevel_8;
  int l_spread_12;
  double l_point_16;
  double l_bid_24;
  double l_ask_32;
  int li_unused_40;
  double l_minlot_44;
  double l_lotstep_52;
  double ld_60;
  int li_68;
  int li_72;
  int li_76;
  int li_80;
  int li_84;
  int li_88;
  bool li_92;
  bool li_96;
  bool li_100;
  bool li_104;
  double ld_108;
  double ld_116;
  string ls_0 = Symbol();

  if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) {
      Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
        ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
      Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
        ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
      Sleep(1000);
     
      return;
  }



]

الداله int start() لابد وان تعود بقيمه
لذا اجعل return هكذا
كود:

return(0);

abo_samar 26 - 09 - 2018 10:57 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

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


في كود تقريبا اكثر من شهر لم اجد اين يوضع بالضبط و هو

كود:

//+------------------------------------------------------------------+
//| Check the correctness of the order volume                        |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
  {
//--- minimal allowed volume for trade operations
  double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
  if(volume<min_volume)
    {
      description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume);
      return(false);
    }

//--- maximal allowed volume of trade operations
  double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
  if(volume>max_volume)
    {
      description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume);
      return(false);
    }

//--- get minimal step of volume changing
  double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

  int ratio=(int)MathRound(volume/volume_step);
  if(MathAbs(ratio*volume_step-volume)>0.0000001)
    {
      description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f",
                              volume_step,ratio*volume_step);
      return(false);
    }
  description="Correct volume value";
  return(true);
  }




سؤال بسيط قبل ان اجيبك
ما فائدة هذه الداله

kazamadrid 26 - 09 - 2018 11:52 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abo_samar (المشاركة 2520442)
سؤال بسيط قبل ان اجيبك
ما فائدة هذه الداله


لي مشكلة في اكسبرت يظهر خطا error 131
https://image.ibb.co/d56xGp/2018_09_26_204741.jpg

و الحل وجدت هاذا الكود و هو موجود في هاذا الرابط
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...]


10:00 AM

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.