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

shivaa 06-09-2016 01:52 AM

النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
السلام عليكم
استاذى اسلام العوامى
انا شغال من يومين فى كود لكسبيرت ولكن اواجه مشاكل
انا لسه بحاول اتعلم من الفديوهات الخاصه بك
اريد كود كامل مجرب
يراقب buystop + sellstop
اذا تم تفعيل واحد منهم او تم حزف يدوى
يعيد نفسه مسافه 40 نقطه عن السعر الحالى فى الحال
مع كود اداره راس المال

shivaa 06-09-2016 02:10 PM

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

اسلام العوامى 07-09-2016 11:27 AM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
اقتباس:

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

،،،اهلا بك اخي الفاضل ، بالنسبة لكود يأخذ سعر اخر صفقة تم فتحها يمكن عمل ذلك بالوظيفة التالية ثم استدعاء الوظيفة في المكان المناسب في الكود،،،

كود:

double Last_Order_OP(int typ)
{
  datetime d =0;
  double xt =0;
  int xtotal  = OrdersTotal();
 
  for (int xcnt = 0 ; xcnt <= xtotal ; xcnt++)
  {
    if(OrderSelect(xcnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==typ)
    {
    if (OrderOpenTime()>d) {d=OrderOpenTime(); xt=OrderOpenPrice();}
    }
  }
  return(xt);
}

،،،ولفتح صفقة معاكسة مكان الصفقة المغلقة يتم اولا معرفة نوع اخر صفقة اغلقت وسعر افتتاحها عن طريق الوظائف التالية،،،

كود:

int Last_Order_Type()
{
  datetime d =0;
  int xt =0;
  int xtotal  = OrdersHistoryTotal();
 
  for (int xcnt = 0 ; xcnt <= xtotal ; xcnt++)
  {
    if(OrderSelect(xcnt,SELECT_BY_POS,MODE_HISTORY))
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
    {
    if (OrderCloseTime()>d) {d=OrderCloseTime(); xt=OrderType();}
    }
  }
  return(xt);
}

كود:

double Last_Order_OP(int typ)
{
  datetime d =0;
  double xt =0;
  int xtotal  = OrdersHistoryTotal();
 
  for (int xcnt = 0 ; xcnt <= xtotal ; xcnt++)
  {
    if(OrderSelect(xcnt,SELECT_BY_POS,MODE_HISTORY))
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==typ)
    {
    if (OrderCloseTime()>d) {d=OrderCloseTime(); xt=OrderOpenPrice();}
    }
  }
  return(xt);
}

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

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

shivaa 07-09-2016 10:19 PM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
الف شكر استاذى الرجاء الشرح
المطلوب من استاذى
اسلام العوامى
طريقه الصحيح فى تشغيل TrailingStop + BreakEve مع الشرح ان امكن
عند اغلاق الاوامر الشراء او بيع يفتح فى نفس النقطه امر معاكس للمغلق
فى حاله اتجاه السعر الى شراء اريد امر بيع المعلق يحافظ على المسافه 40 نقطه بينه وبين السعر الحالى
فى حاله اتجاه السعر الى بيع اريد امر شراء المعلق يحافظ على المسافه 40 نقطه بينه وبين السعر الحالى
مشابه TrailingStop منفزعلى على سعر الدخول الاوامر buystop + sellstop
اعرف ان ممكن تتعمل بداله OrderModify ولكن فشلت فى عملها
ممكن كود ادارة راس المال
اغلاق على الربح بالدولار ممكن تفعيل او لا
هل ممكن تشغيل BreakEve بعد التشغيل اول مره وبعد كل اغلاق للاوامر
من طريقه عمل اكسبيرت انه يقسم الاتجاه الى اوامر يفصل بنهم 40 نقطه
اريد ان عند افتتاح امر جديد ان يستحدم سعر الدخول فى stop loss لكل الاوامر من نفس النوع شراء او بيع
وياتى دور TrailingStop على اخر امر فتح فقط

shivaa 24-09-2016 07:09 AM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
السلام عليكم بعد تعب وجدت الكود TrailingStop
عمل معى بكل متياز
الان اريد طلبين من استاذى
كود حمايه عدم تشغيل بعد مده معينه محدد
مع رقم الحساب لتشغيله على حساب معيا
لا تعمل مع اى حساب اخر
كود اغلاق يوم الجمعه

كود:

void trail()
  {
  for(int i=0; i<OrdersTotal(); i++)
    {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      if(OrderSymbol()==Symbol())
        {
        if(OrderType()==OP_BUY)
          {
            if(Bid - OrderOpenPrice() > TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
              {
              if(OrderStopLoss() < Bid - TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT))
                {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),Red);
                }
              }
              } else if(OrderType()==OP_SELL) {
            if(OrderOpenPrice()-Ask>TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT))
              {
              if((OrderStopLoss()>Ask+TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT)) ||
                  (OrderStopLoss()==0))
                {
                  OrderModify(OrderTicket(),OrderOpenPrice(),
                              Ask+TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),Red);
                }
              }
          }
        }
    }
  }


اسلام العوامى 24-09-2016 03:31 PM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
اقتباس:

المشاركة الأصلية كتبت بواسطة shivaa (المشاركة 887614)
السلام عليكم بعد تعب وجدت الكود TrailingStop
عمل معى بكل متياز
الان اريد طلبين من استاذى
كود حمايه عدم تشغيل بعد مده معينه محدد
مع رقم الحساب لتشغيله على حساب معيا
لا تعمل مع اى حساب اخر
كود اغلاق يوم الجمعه

كود:

void trail()
  {
  for(int i=0; i<OrdersTotal(); i++)
    {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      if(OrderSymbol()==Symbol())
        {
        if(OrderType()==OP_BUY)
          {
            if(Bid - OrderOpenPrice() > TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
              {
              if(OrderStopLoss() < Bid - TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT))
                {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),Red);
                }
              }
              } else if(OrderType()==OP_SELL) {
            if(OrderOpenPrice()-Ask>TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT))
              {
              if((OrderStopLoss()>Ask+TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT)) ||
                  (OrderStopLoss()==0))
                {
                  OrderModify(OrderTicket(),OrderOpenPrice(),
                              Ask+TrailingStop*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),Red);
                }
              }
          }
        }
    }
  }



،،،الاكواد بالترتيب،،،

كود:


if(Day()>10&&Month()>10&&Year()>=2016){return(0);}
if(AccountNumber()!=11111){return(0);}
if(DayOfWeek()==FRIDAY){/*وظيفة الاغلاق*/}


shivaa 19-10-2016 03:01 PM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
السلام عليكم
استاذى لم تعمل اريد مساعده بفكره من عندك
داله هيدج وداله حساب بداء التفعيل
وضعه فى ملف غير مقرواء او متشفر فى مسار معيا وليسه فى مسار
C:\Program Files\ MT4\MQL4\Files
كيف اجعل الاكسبيرت احساس بالسرعه فى فتح الصفقات متلحقه او فى خبر

حتى اشغل المضاعفات بحيث وقت الخبر فقط ثم الرجوع على التداول الطبيعى

اسلام العوامى 19-10-2016 03:23 PM

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
اقتباس:

المشاركة الأصلية كتبت بواسطة shivaa (المشاركة 890346)
السلام عليكم
استاذى لم تعمل اريد مساعده بفكره من عندك
داله هيدج وداله حساب بداء التفعيل
وضعه فى ملف غير مقرواء او متشفر فى مسار معيا وليسه فى مسار
C:\Program Files\ MT4\MQL4\Files
كيف اجعل الاكسبيرت احساس بالسرعه فى فتح الصفقات متلحقه او فى خبر

حتى اشغل المضاعفات بحيث وقت الخبر فقط ثم الرجوع على التداول الطبيعى

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

،،اهلا بك اخي الفاضل ، لم افهم المطلوب تحديدا ، الرجاء الشرح بصورة تفصيلية وواضحة،،،

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

shivaa 19-10-2016 03:57 PM

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

ده محولتى فى كتابه الداله
لم تعمل للسف


كود:

int  Hedge_Order_BUY(int type)
  {int cnt2=0;
  for(int i=0;i<OrdersTotal();i++)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        if(OrderSymbol()==Symbol() && OrderType()==type && OrderStopLoss()<(Step_Hedge*Point*T)-Bid)
            cnt2=OrderTicket();
    }
    return(cnt2);
    for(int ii=0;ii<OrdersTotal();ii++)
    {
      if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES))
        {
        if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderComment()==cnt2)
          {
            if(cnt2==0)
              {
              bool buy=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,cnt2,Magic,0,CLR_NONE);

              }
          }
        }

    }
  }


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

رد: النجده جالى الغضروف بسبب الاكسبيرت مطلوب كود برمجى من استاذى اسلام العوامى
 
اقتباس:

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

ده محولتى فى كتابه الداله
لم تعمل للسف


كود:

int  Hedge_Order_BUY(int type)
  {int cnt2=0;
  for(int i=0;i<OrdersTotal();i++)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        if(OrderSymbol()==Symbol() && OrderType()==type && OrderStopLoss()<(Step_Hedge*Point*T)-Bid)
            cnt2=OrderTicket();
    }
    return(cnt2);
    for(int ii=0;ii<OrdersTotal();ii++)
    {
      if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES))
        {
        if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderComment()==cnt2)
          {
            if(cnt2==0)
              {
              bool buy=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,cnt2,Magic,0,CLR_NONE);

              }
          }
        }

    }
  }


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

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

كود:

int Order_Ticket()

  int Ticket =0;
  int total  = OrdersTotal();
 
  for (int cnt = 0 ; cnt <= total ; cnt++)
  {
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderProfit()<0)
    {
    if (MathAbs((OrderOpenPrice()-Bid)/Point>=/*عدد النقاط الخاسرة*/) {Ticket=OrderTicket();}
    }
  }
  return(Ticket);
}

،،،ولكن لا يمكن التحكم في فتح صفقة برقم تيكت معين لان البروكر هو من يقوم باختيار الرقم،،،

،،،الكود الثاني يجب ان يتم برمجة ملف dll وتخزين القيم فيه ثم استدعاء الملف داخل الاكسبيرت وقراءة القيم منه،،،

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

كود:

double Last_Order_Open_Time()
{
  datetime xd =0;
  int total  = OrdersTotal();
 
  for (int cnt = 0 ; cnt <= total ; cnt++)
  {
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
    {
    if (OrderOpenTime()>xd) {xd=OrderOpenTime();}
    }
  }
  return(xd);
}



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

Powered by vBulletin® Copyright ©2000 - 2024

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