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

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

ابو سمر 04-12-2013 08:53 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

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


>>

كود:


extern bool reversesignal= true;



; ()if(buy condition) closeOrder
; ()if(sell condition) closeOrder



ونعمل دالة closeorder


void closeordar(int typer){
 for(int c=0;c<OrdersTotal();c++){
 OrderSelect(c,SELECT_BY_POS,MODE_TRADES);
 if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()== typer){
 if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,30);
 if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,30);

    }
  }
  }

انا مش عارف اكتب الكود هنا ف المنتدي
علشان مش شايف الترتيب

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

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

اسلام العوامى 04-12-2013 09:32 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

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

،،،اولا ستقوم بحجز متغير من النوع bool بأى اسم
كود:

extern bool CloseOppisite = false;
بعد ذلك تكتب الكود التالى قبل اكواد فتح الصفقات بحيث اذا تحققت شروط الشراء وفى نفس الوقت قيمة المتغير CloseOppisite تساوى true يقوم الاكسبيرت بغلق صفقات البيع والعكس وفى حالتنا هذه سنستخدم الموفنج كشرط دخول
كود:

if ( (mafast2<maslow2&&mafast1>maslow1&&CloseOppisite==true ))
     
      CloseSellOrders();
     
     
      if ((mafast2>maslow2&&mafast1<maslow1&&CloseOppisite==true))
   
    CloseBuyOrders();

وتقوم بعمل وظيفتين لغلق البيع او الشراء

كود:

int CloseBuyOrders()
{
  for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_BUY)
      {
        bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);
        while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);Sleep(1000);}
      }
    }
  }
  return(0);


int CloseSellOrders()
{
 for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_SELL)
      {
      bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);
      while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);Sleep(1000);}
      }
    }
    }
  return(0);
}



اقتباس:

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


>>

كود:


extern bool reversesignal= true;



; ()if(buy condition) closeOrder
; ()if(sell condition) closeOrder



ونعمل دالة closeorder


void closeordar(int typer){
 for(int c=0;c<OrdersTotal();c++){
 OrderSelect(c,SELECT_BY_POS,MODE_TRADES);
 if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()== typer){
 if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,30);
 if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,30);

    }
  }
  }

انا مش عارف اكتب الكود هنا ف المنتدي
علشان مش شايف الترتيب

الكود صحيح ولكن يلزم ان تضع شرط
كود:

if (reversesignal= true)
قبل الكود السابق

اسلام العوامى 04-12-2013 09:35 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ابو سمر (المشاركة 578619)
جزاك الله كل خير على المساعده
هركب الكود واشوف النتيجه
................
لو تكرمت ممكن تقولى سبب الخطأ اللى فى الصوره

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

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

ابو سمر 05-12-2013 02:08 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة العوامى (المشاركة 578627)
،،،اولا ستقوم بحجز متغير من النوع bool بأى اسم
كود:

extern bool CloseOppisite = false;
بعد ذلك تكتب الكود التالى قبل اكواد فتح الصفقات بحيث اذا تحققت شروط الشراء وفى نفس الوقت قيمة المتغير CloseOppisite تساوى true يقوم الاكسبيرت بغلق صفقات البيع والعكس وفى حالتنا هذه سنستخدم الموفنج كشرط دخول
كود:

if ( (mafast2<maslow2&&mafast1>maslow1&&CloseOppisite==true ))
     
      CloseSellOrders();
     
     
      if ((mafast2>maslow2&&mafast1<maslow1&&CloseOppisite==true))
   
    CloseBuyOrders();

وتقوم بعمل وظيفتين لغلق البيع او الشراء

كود:

int CloseBuyOrders()
{
  for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_BUY)
      {
        bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);
        while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);Sleep(1000);}
      }
    }
  }
  return(0);


int CloseSellOrders()
{
 for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_SELL)
      {
      bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);
      while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);Sleep(1000);}
      }
    }
    }
  return(0);
}


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

يا ريت حضرتك تظبطلى الاكواد بحيث يغلق عند الاشارة العكسيه

كود:

double buy=iCustom(Symbol(),0,"LongSignal",2,2);
double sell=iCustom(Symbol(),0,"LongSignal",3,2);
if(buy<10000)buy=true;
if(sell<10000)sell=true;

if (buy<10000&&buy==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"Long BUY",MagicNumber,0,Blue);

if (sell<10000&&sell==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"Long SELL",MagicNumber,0,Blue);


amerelhozn 05-12-2013 03:00 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة العوامى (المشاركة 578627)
،،،اولا ستقوم بحجز متغير من النوع bool بأى اسم
كود:

extern bool CloseOppisite = false;
بعد ذلك تكتب الكود التالى قبل اكواد فتح الصفقات بحيث اذا تحققت شروط الشراء وفى نفس الوقت قيمة المتغير CloseOppisite تساوى true يقوم الاكسبيرت بغلق صفقات البيع والعكس وفى حالتنا هذه سنستخدم الموفنج كشرط دخول
كود:

if ( (mafast2<maslow2&&mafast1>maslow1&&CloseOppisite==true ))
     
      CloseSellOrders();
     
     
      if ((mafast2>maslow2&&mafast1<maslow1&&CloseOppisite==true))
   
    CloseBuyOrders();

وتقوم بعمل وظيفتين لغلق البيع او الشراء

كود:

int CloseBuyOrders()
{
  for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_BUY)
      {
        bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);
        while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);Sleep(1000);}
      }
    }
  }
  return(0);


int CloseSellOrders()
{
 for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_SELL)
      {
      bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);
      while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);Sleep(1000);}
      }
    }
    }
  return(0);
}






الكود صحيح ولكن يلزم ان تضع شرط
كود:

if (reversesignal= true)

قبل الكود السابق

اظن انها غلطة مطبيعة زي

if(reversesignal==true )
صح كده
لانها سؤال

sunegypt 05-12-2013 04:44 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
تم الانتهاء من الدرس الخامس

ربنا يعينا يارب

الله المستعان

اسلام العوامى 05-12-2013 09:43 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

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

يا ريت حضرتك تظبطلى الاكواد بحيث يغلق عند الاشارة العكسيه

كود:

double buy=iCustom(Symbol(),0,"LongSignal",2,2);
double sell=iCustom(Symbol(),0,"LongSignal",3,2);
if(buy<10000)buy=true;
if(sell<10000)sell=true;

if (buy<10000&&buy==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"Long BUY",MagicNumber,0,Blue);

if (sell<10000&&sell==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"Long SELL",MagicNumber,0,Blue);


،،،اولا يجب ان تتأكد من قيمة اندكس او اشارة المؤشر عند ظهورها على الشارت،،،

،،،بعد ذلك تقوم بوضع هذا المتغير فى global area ،،،

كود:


extern bool CloseOppisite = false;


،،،بعد ذلك تقوم بوضع الكود التالى،،،


كود:


int start()
  {
//----
bool buysignal,sellsignal;
  double buy=iCustom(Symbol(),0,"LongSignal",2,2);
double sell=iCustom(Symbol(),0,"LongSignal",3,2);
if(buy<10000)
{
buysignal=true;
sellsignal=false;
}
if(sell<10000)sell=true;
{
buysignal=false;
sellsignal=true;
}

if(buysignal==true&&
CloseOppisite = True)CloseSellOrders();
if(sellsignal==true&&
CloseOppisite = True)CloseBuyOrders();



if (buysignal==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"Long BUY",MagicNumber,0,Blue);

if (sellsignal==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"Long SELL",MagicNumber,0,Red);
//----
  return(0);
  }
//+------------------------------------------------------------------+

int CloseBuyOrders()
{
  for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_BUY)
      {
        OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
    }
  }
  return(0);


int CloseSellOrders()
{
 for (int i = 0 ; i < OrdersTotal() ; i++)
  {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
    {
      if (OrderType()==OP_SELL)
      {
      OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
    }
    }
  return(0);
}


اسلام العوامى 05-12-2013 09:44 AM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة amerelhozn (المشاركة 579096)
اظن انها غلطة مطبيعة زي

if(reversesignal==true )
صح كده
لانها سؤال

،،،تمام،،،

sunegypt 06-12-2013 10:36 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
متى سينزل الفيديو الحادى عشر اخى اسلام

انا لسه لم أصل اليه بعد ولكنى مستعجل عشان انزله :1 (114):

للاستئناس وللاطمئنان :1 (93):

تقبل ودى استاذى الكريم

اسلام العوامى 06-12-2013 11:33 PM

رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
 
اقتباس:

المشاركة الأصلية كتبت بواسطة sunegypt (المشاركة 579756)
متى سينزل الفيديو الحادى عشر اخى اسلام

انا لسه لم أصل اليه بعد ولكنى مستعجل عشان انزله :1 (114):

للاستئناس وللاطمئنان :1 (93):

تقبل ودى استاذى الكريم

،،،غدا صباحا باذن الله،،،


الساعة الآن 12:36 AM

Powered by vBulletin® Copyright ©2000 - 2024

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