الدورة الاحتراف

إعلانات تجارية اعلن معنا

صفحة 3 من 3 الأولىالأولى 123
النتائج 21 إلى 24 من 24

الموضوع: اكسبيرت للتعلم (1)

  1. #21

    افتراضي رد: اكسبيرت للتعلم (1)

    فى كمان حاجه يا بشمهندس
    انت عارف الطرق الرقميه اهم حاجه فيها الساعه
    وهذه الطريقه مثلا تعتمد على شمعه الصفر ل fxdd الموافق 12 صباحا فى مصر

    هل فى كود لجعل الصفقات تفتح بناء على جرينتش

  2. #22

    افتراضي رد: اكسبيرت للتعلم (1)

    اقتباس المشاركة الأصلية كتبت بواسطة التائب اليك مشاهدة المشاركة
    طيب ياريت يا بشمهندس لو تضيفلنا هذا الكود الخاص بالاستوب المتحرك

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

    اضف هذا السطر

    [PHP]
    extern int TrailingStop = 0;
    [/PHP]
    بعد هذا السطر

    [PHP]
    extern int Stoploss=100;
    [/PHP]

    ثم اضف هذا الكود

    [PHP]
    double lTrailingStop = TrailingStop;
    double sTrailingStop = TrailingStop;
    if(lTrailingStop>0||sTrailingStop>0){//3
    TrailingPositionsBuy(lTrailingStop);
    TrailingPositionsSell(sTrailingStop);
    }
    [/PHP]

    في بداية الدالة
    [PHP] start()[/PHP]

    ثم اضف هذه الدوال في نهاية الاكسبيرت

    [PHP]
    void TrailingPositionsBuy(int trailingStop) {
    for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
    if (OrderType()==OP_BUY) {
    if (Bid-OrderOpenPrice()>trailingStop*Point) {
    if (OrderStopLoss()<Bid-trailingStop*Point)
    ModifyStopLoss(Bid-trailingStop*Point);
    }
    }
    }
    }
    }
    }
    void TrailingPositionsSell(int trailingStop) {
    for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
    if (OrderType()==OP_SELL) {
    if (OrderOpenPrice()-Ask>trailingStop*Point) {
    if (OrderStopLoss()>Ask+trailingStop*Point || OrderStopLoss()==0)
    ModifyStopLoss(Ask+trailingStop*Point);
    }
    }
    }
    }
    }
    }

    void ModifyStopLoss(double ldStopLoss) {
    bool fm;
    fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopL oss,OrderTakeProfit(),0,CLR_NONE);
    }
    [/PHP]

    وسيصبح الكود النهائي هكذا

    [PHP]//+------------------------------------------------------------------+
    //| ahmed ibrahim-mahamed maamo v1.mq4 |
    //| Copyright © 2009,Ahmed Ibrahim |
    //| http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2009,Ahmed Ibrahim"
    #property link "http://www.metaquotes.net"

    //+------------------------------------------------------------------
    extern int Step=120;
    extern int Takeprofit=100;
    extern int Stoploss=100;
    extern int TrailingStop = 0;
    extern double Lots=0.10;
    extern int MagicNumber = 5000;
    int t1,t2;

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    double lTrailingStop = TrailingStop;
    double sTrailingStop = TrailingStop;
    if(lTrailingStop>0||sTrailingStop>0){//3
    TrailingPositionsBuy(lTrailingStop);
    TrailingPositionsSell(sTrailingStop);
    }
    if(Hour()==0 && Minute()<5 && (MyRealOrdersTotal(MagicNumber) + MyPendingOrdersTotal(MagicNumber))>0 )
    {
    CloseOrders(MagicNumber);
    DeletePendingOrders(MagicNumber);

    }
    else if(Hour()==0 && Minute()>5 && MyPendingOrdersTotal(MagicNumber)<2)
    {
    double Dayopen=iOpen(Symbol(),PERIOD_H1,0);
    double BuyPrice=Dayopen+Step*Point;
    double BuyTP=BuyPrice+Takeprofit*Point;
    double BuySL=BuyPrice-Stoploss*Point;

    double SellPrice=Dayopen-Step*Point;
    double SellTP=SellPrice-Takeprofit*Point;
    double SellSL=SellPrice+Stoploss*Point;

    if (MyBuyPendingOrdersTotal(MagicNumber)==0) OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuyS L,BuyTP,"",MagicNumber,0,Green);
    if (MySellPendingOrdersTotal(MagicNumber)==0) OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,Se llSL,SellTP,"",MagicNumber,0,Red);
    }

    else if (MyRealOrdersTotal(MagicNumber)>0) DeletePendingOrders(MagicNumber);


    return(0);
    }

    // وظيفة لحساب عدد الصفقات الحالية
    int MyRealOrdersTotal(int Magic)
    {
    int c=0;
    int total = OrdersTotal();
    t1=-1;
    t2=-1;

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
    {
    if (t1==-1)
    {
    t1=OrderTicket();
    }
    else
    {
    if (t2==-1)
    {
    t2=OrderTicket();
    }
    }
    c++;
    }
    }
    return(c);
    }

    // وظيفة لحساب عدد الصفقات المعلقة فقط
    int MyPendingOrdersTotal(int Magic)
    {
    int c=0;
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT))
    {
    c++;
    }
    }
    return(c);
    }

    // وظيفة لحذف الصفقات المعلقة
    int DeletePendingOrders(int Magic)
    {
    int total = OrdersTotal();

    for (int cnt = total - 1; cnt >= 0; cnt--)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT))
    {
    OrderDelete(OrderTicket());
    }
    }
    return(0);
    }

    // اغلاق جميع الصفقات المفتوحة
    //+------------------------------------------------------------------+
    int CloseOrders(int Magic)
    {
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
    if (OrderType()==OP_BUY)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Bid,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }

    if (OrderType()==OP_SELL)
    {
    if(OrderClose(OrderTicket(),OrderLots(),Ask,3)==fa lse)
    {
    RefreshRates();
    }
    else
    {
    cnt=0;
    total=OrdersTotal();
    }
    }
    }
    }
    return(0);
    }

    // وظيفة لحساب عدد الصفقات المعلقة فقط
    int MyBuyPendingOrdersTotal(int Magic)
    {
    int c=0;
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT ))
    {
    c++;
    }
    }
    return(c);
    }

    int MySellPendingOrdersTotal(int Magic)
    {
    int c=0;
    int total = OrdersTotal();

    for (int cnt = 0 ; cnt < total ; cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT))
    {
    c++;
    }
    }
    return(c);
    }

    void TrailingPositionsBuy(int trailingStop) {
    for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
    if (OrderType()==OP_BUY) {
    if (Bid-OrderOpenPrice()>trailingStop*Point) {
    if (OrderStopLoss()<Bid-trailingStop*Point)
    ModifyStopLoss(Bid-trailingStop*Point);
    }
    }
    }
    }
    }
    }
    void TrailingPositionsSell(int trailingStop) {
    for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
    if (OrderType()==OP_SELL) {
    if (OrderOpenPrice()-Ask>trailingStop*Point) {
    if (OrderStopLoss()>Ask+trailingStop*Point || OrderStopLoss()==0)
    ModifyStopLoss(Ask+trailingStop*Point);
    }
    }
    }
    }
    }
    }

    void ModifyStopLoss(double ldStopLoss) {
    bool fm;
    fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopL oss,OrderTakeProfit(),0,CLR_NONE);
    }
    [/PHP]

    جرب الاكسبيرت أولاً

    وسنضيف التوقيت في المرة القادمة

    تحياتي
    الملفات المرفقة الملفات المرفقة

  3. #23

    افتراضي رد: اكسبيرت للتعلم (1)

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

    ارجو توضيح معنى داله

    MagicNumber = 5000;
    وما فائدتها وشكرا


  4. #24

    افتراضي رد: اكسبيرت للتعلم (1)

    اقتباس المشاركة الأصلية كتبت بواسطة phantom11 مشاهدة المشاركة
    السلام عليكم ورحمه الله وبركاته

    ارجو توضيح معنى داله

    MagicNumber = 5000;
    وما فائدتها وشكرا

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

    هذا هو الماجيك نمبر أو الرقم السحري
    حيث لكل صفقة ماجيك نمبر ويجب ان يكون لصفقات كل اكسبيرت ماجيك نمبر يختلف عن صفقات الاكسبيرتات الاخرى

    وذلك حتى يفرق الاكسبيرت بين صفقاته وبين صفقات الاكسبيرتات الاخرى او الصفقات اليدوية لكي لا يفتح أو يغلق الاكسبيرت الصفقات الاخرى او يضاعف بناء عليها او ...

    تحياتي


صفحة 3 من 3 الأولىالأولى 123

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. اكسبيرت للتعلم (2) "هيدج"
    بواسطة مهندس وجدي في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 22
    آخر مشاركة: 03-07-2015, 03:40 PM
  2. صفقة للتعلم تدريجيا
    بواسطة أحمـد أبو السعود في المنتدى نادي خـبـراء الـبـورصه العالمية
    مشاركات: 13
    آخر مشاركة: 07-01-2015, 07:36 AM
  3. التعديل على اكسبيرت Martingail : اكسبيرت للتعلم (4)
    بواسطة nabola في المنتدى نادي خبراء الأستراتيجيات والاكسبيرتات والبرمجة Strategies & Experts Advisors
    مشاركات: 6
    آخر مشاركة: 15-09-2012, 06:46 AM
  4. مناقشة فنية ودعــــــــــوة للتعلم
    بواسطة أيمن على في المنتدى نادي خـبـراء سـوق الـمـال السـعودي Saudi Stock Experts Club
    مشاركات: 230
    آخر مشاركة: 14-05-2010, 06:48 PM

الكلمات الدلالية لهذا الموضوع

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

يعد " نادى خبراء المال" واحدا من أكبر وأفضل المواقع العربية والعالمية التى تقدم خدمات التدريب الرائدة فى مجال الإستثمار فى الأسواق المالية ابتداء من عملية التعريف بأسواق المال والتدريب على آلية العمل بها ومرورا بالتعريف بمزايا ومخاطر التداول فى كل قطاع من هذه الأسواق إلى تعليم مهارات التداول وإكساب المستثمرين الخبرات وتسليحهم بالأدوات والمعارف اللازمة للحد من المخاطر وتوضيح طرق بناء المحفظة الاستثمارية وفقا لأسس علمية وباستخدام الطرق التعليمية الحديثة في تدريب وتأهيل العاملين في قطاع المال والأعمال .

الدعم الفني المباشر
دورات تدريبية
اتصل بنا