موضوع مخصص للأسئلة البرمجية - الصفحة 101
صفحة 101 من 657 الأولىالأولى ... 51919596979899100101102103104105106107111151201601 ... الأخيرةالأخيرة
النتائج 1,501 إلى 1,515 من 9847
  1. #1501
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

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

    المبلغ الاجمالي مضروب في اللوت تقسيم على راس المال
    مثال ادا كان مثلا راس المال = 70 و اللوت = 0.04 وبعد عمل الاكسبيرت اصبح المبلغ الاجمالي = 100
    يقوم الاكسبيرت بحسات التالي 100 * 0.04 / 70 فيصبح الناتج = 0.05 لوت
    اي عند فتح صفقة اخرى وكان المبلع الاجمالي ( Balance ) يساوي 100 يقوم بمضاعفة اللوت الى 0.05

    وجزاكم الله كل الخير
    وعليكم السلام ورحمة الله وبركاته
    هذا مثال
    كود PHP:
    double NextLot=AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  2. #1502
    تاريخ التسجيل
    Mar 2009
    العمر
    29
    المشاركات
    550

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    لم تراجع الكود جيدا
    نسيت القوس في هذه الأسطر
    كود PHP:
    if(Hour()==&& Minute()<&& MyOrdersTotal(Magicnumber)>0
    وهنا
    كود PHP:
    if(Hour()==&& Minute()>&& MyOrdersTotal (Magicnumber)==0
    وهنا
    كود PHP:
    int CloseOrders(int Magic)
    {
      
    int total OrdersTotal()-1;

      for(
    int cnt=total cnt>cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
        {
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3);
          }
          
          if (
    OrderType()==OP_SELL)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Ask,3);
          }
        
      }
     }
      return(
    0);

    thank you very much
    I failed to focus

  3. #1503
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    هذا مثال
    كود PHP:
    double NextLot=AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
    الله اجازيك بالخير ان شاء الله استادنا الغالي

  4. #1504
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    للاسف الاخ MR.dollar لم افلح في تركيب الكود لانني جديد في البرمجة
    يبدو الاكسبيرت معقد ممكن اتركبنا الكود و هدا هو قسم الستارت
    او احملك الاكسبيرت ؟

    كود PHP :

    كود PHP:
    int start() {
       
    double ld_200;
       
    double ld_208;
       if (
    RiskMM) {
          if (
    Risk 0.1 || Risk 100.0) {
             
    Comment("Invalid Risk Value.");
             return (
    0);
          }
          
    LotsBuy MathFloor(100.0 * (AccountFreeMargin() * AccountLeverage() * Risk Point) / (Ask MarketInfo(Symbol(), MODE_LOTSIZE) * MarketInfo(Symbol(), MODE_MINLOT))) * MarketInfo(Symbol(), MODE_MINLOT);
          
    LotsSell MathFloor(100.0 * (AccountFreeMargin() * AccountLeverage() * Risk Point) / (Ask MarketInfo(Symbol(), MODE_LOTSIZE) * MarketInfo(Symbol(), MODE_MINLOT))) * MarketInfo(Symbol(), MODE_MINLOT);
       }
       if (
    RiskMM == FALSE) {
       }
       if (
    gd_672 != 0.0 && MinProfit 0.0) {
          if (
    gd_672 <= AccountBalance() && AccountBalance() <= gd_672 MinProfitMultiplier 1;
          else {
             if (
    AccountBalance() < gd_672) {
             }
          }
       }
       
    gd_672 AccountBalance();
       
    double ld_0 0;
       
    ld_0 AccountEquity() - AccountBalance();
       if (
    ld_0 gd_684gd_684 ld_0;
       
    string ls_8 "false";
       if (
    UseBasketLoss == TRUE && ld_0 <= (-BasketLoss)) ls_8 "true";
       
    double ld_16 0;
       
    double ld_24 0;
       
    string l_symbol_32 OrderSymbol();
       
    double l_spread_40 MarketInfo(l_symbol_32MODE_SPREAD);
       
    double l_digits_48 MarketInfo(l_symbol_32MODE_DIGITS);
       
    double l_minlot_56 MarketInfo(l_symbol_32MODE_MINLOT);
       
    double l_ima_64 iMA(Symbol(), 0MaPeriod0MaModeMaPrice1);
       
    double l_istochastic_72 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_MAIN1);
       
    double l_istochastic_80 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_SIGNAL1);
       
    string ls_88 "false";
       
    string ls_96 "false";
       if (
    l_istochastic_72 l_istochastic_80ls_88 "true";
       if (
    l_istochastic_72 l_istochastic_80ls_96 "true";
       
    string ls_104 "false";
       
    string ls_112 "false";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneBuyls_104 "true";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneSellls_112 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneBuy && l_istochastic_80 EndZoneBuyls_104 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneSell && l_istochastic_80 EndZoneSellls_112 "true";
       
    string ls_120 "false";
       
    string ls_128 "false";
       if (
    ExtendedZone == TRUE && l_istochastic_80 <= CloseLevelDnSell || l_istochastic_80 >= CloseLevelUpSellls_120 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 >= CloseLevelUpBuy || l_istochastic_80 <= CloseLevelDnBuyls_128 "true";
       
    string ls_136 "false";
       
    string ls_144 "false";
       if (
    Ask l_ima_64 || MaFilter == FALSEls_136 "true";
       if (
    Bid l_ima_64 || MaFilter == FALSEls_144 "true";
       
    string ls_152 "false";
       if (
    MaxSpread == MaxSpread || UseMaxSpread == FALSEls_152 "true";
       
    string ls_160 "false";
       
    string ls_168 "false";
       if (
    OrdersTotalMagicBuy(g_magic_440) < MaxBuyOrders || MaxOpenOrders == FALSEls_160 "true";
       if (
    OrdersTotalMagicSell(g_magic_448) < MaxSellOrders || MaxOpenOrders == FALSEls_168 "true";
       
    string ls_176 "false";
       if (
    AccountEquity() < EquityTarget || UseEquityTarget == FALSEls_176 "true";
       
    string ls_184 "false";
       if (
    TimeFilter == TRUE && !(Hour() < StartHour || Hour() >= EndHour)) ls_184 "true";
       
    string ls_192 "false";
       if (
    CloseFriday == TRUE && DayOfWeek() == && TimeCurrent() >= StrToTime(CloseFridayHour ":00")) ls_192 "true";
       if (
    l_minlot_56 == 0.01) {
          
    gd_632 2;
          if (
    maxLot <= 0.0maxLot MarketInfo(l_symbol_32MODE_MAXLOT);
       }
       if (
    l_minlot_56 == 0.1) {
          
    gd_632 1;
          if (
    maxLot <= 0.0maxLot AccountBalance() / 2.0 1000.0;
       }
       if (
    OrdersTotalMagicBuy(g_magic_440) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_440) {
                
    g_ticket_692 OrderTicket();
                
    OrderSelect(g_ticket_692SELECT_BY_TICKETMODE_TRADES);
                
    ld_200 += OrderLots();
                
    g_ord_open_price_456 OrderOpenPrice();
                
    g_ord_lots_488 OrderLots();
             }
          }
          if (
    ld_200 NormalizeDouble(g_ord_lots_488 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Ask <= g_ord_open_price_456 Step Point && ls_136 == "true" && ls_152 == "true" && ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" &&
                   
    ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
             if (
    StepMode == 1) {
                if (
    Ask <= g_ord_open_price_456 - (Step OrdersTotalMagicBuy(g_magic_440) + OrdersTotalMagicBuy(g_magic_440) - 2.0) * Point && ls_136 == "true" && ls_152 == "true" &&
                   
    ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" && ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
          }
       }
       if (
    OrdersTotalMagicSell(g_magic_448) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_448) {
                
    g_ticket_696 OrderTicket();
                
    OrderSelect(g_ticket_696SELECT_BY_TICKETMODE_TRADES);
                
    ld_208 += OrderLots();
                
    g_ord_open_price_464 OrderOpenPrice();
                
    g_ord_lots_496 OrderLots();
             }
          }
          if (
    ld_208 NormalizeDouble(g_ord_lots_496 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Bid >= g_ord_open_price_464 Step Point && ls_144 == "true" && ls_152 == "true" && ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" &&
                   
    ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_528"Trader Doni irawan ST"g_magic_4480Red);
                }
             }
             if (
    StepMode == 1) {
                if (
    Bid >= g_ord_open_price_464 + (Step OrdersTotalMagicSell(g_magic_448) + OrdersTotalMagicSell(g_magic_448) - 2.0) * Point && ls_144 == "true" && ls_152 == "true" &&
                   
    ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" && ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_520"Trader Doni irawan ST"g_magic_4480Red);
                } 

  5. #1505
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Mustapoiha مشاهدة المشاركة
    للاسف الاخ MR.dollar لم افلح في تركيب الكود لانني جديد في البرمجة
    يبدو الاكسبيرت معقد ممكن اتركبنا الكود و هدا هو قسم الستارت
    او احملك الاكسبيرت ؟

    كود PHP :

    كود PHP:
    int start() {
       
    double ld_200;
       
    double ld_208;
       if (
    RiskMM) {
          if (
    Risk 0.1 || Risk 100.0) {
             
    Comment("Invalid Risk Value.");
             return (
    0);
          }
          
    LotsBuy MathFloor(100.0 * (AccountFreeMargin() * AccountLeverage() * Risk Point) / (Ask MarketInfo(Symbol(), MODE_LOTSIZE) * MarketInfo(Symbol(), MODE_MINLOT))) * MarketInfo(Symbol(), MODE_MINLOT);
          
    LotsSell MathFloor(100.0 * (AccountFreeMargin() * AccountLeverage() * Risk Point) / (Ask MarketInfo(Symbol(), MODE_LOTSIZE) * MarketInfo(Symbol(), MODE_MINLOT))) * MarketInfo(Symbol(), MODE_MINLOT);
       }
       if (
    RiskMM == FALSE) {
       }
       if (
    gd_672 != 0.0 && MinProfit 0.0) {
          if (
    gd_672 <= AccountBalance() && AccountBalance() <= gd_672 MinProfitMultiplier 1;
          else {
             if (
    AccountBalance() < gd_672) {
             }
          }
       }
       
    gd_672 AccountBalance();
       
    double ld_0 0;
       
    ld_0 AccountEquity() - AccountBalance();
       if (
    ld_0 gd_684gd_684 ld_0;
       
    string ls_8 "false";
       if (
    UseBasketLoss == TRUE && ld_0 <= (-BasketLoss)) ls_8 "true";
       
    double ld_16 0;
       
    double ld_24 0;
       
    string l_symbol_32 OrderSymbol();
       
    double l_spread_40 MarketInfo(l_symbol_32MODE_SPREAD);
       
    double l_digits_48 MarketInfo(l_symbol_32MODE_DIGITS);
       
    double l_minlot_56 MarketInfo(l_symbol_32MODE_MINLOT);
       
    double l_ima_64 iMA(Symbol(), 0MaPeriod0MaModeMaPrice1);
       
    double l_istochastic_72 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_MAIN1);
       
    double l_istochastic_80 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_SIGNAL1);
       
    string ls_88 "false";
       
    string ls_96 "false";
       if (
    l_istochastic_72 l_istochastic_80ls_88 "true";
       if (
    l_istochastic_72 l_istochastic_80ls_96 "true";
       
    string ls_104 "false";
       
    string ls_112 "false";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneBuyls_104 "true";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneSellls_112 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneBuy && l_istochastic_80 EndZoneBuyls_104 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneSell && l_istochastic_80 EndZoneSellls_112 "true";
       
    string ls_120 "false";
       
    string ls_128 "false";
       if (
    ExtendedZone == TRUE && l_istochastic_80 <= CloseLevelDnSell || l_istochastic_80 >= CloseLevelUpSellls_120 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 >= CloseLevelUpBuy || l_istochastic_80 <= CloseLevelDnBuyls_128 "true";
       
    string ls_136 "false";
       
    string ls_144 "false";
       if (
    Ask l_ima_64 || MaFilter == FALSEls_136 "true";
       if (
    Bid l_ima_64 || MaFilter == FALSEls_144 "true";
       
    string ls_152 "false";
       if (
    MaxSpread == MaxSpread || UseMaxSpread == FALSEls_152 "true";
       
    string ls_160 "false";
       
    string ls_168 "false";
       if (
    OrdersTotalMagicBuy(g_magic_440) < MaxBuyOrders || MaxOpenOrders == FALSEls_160 "true";
       if (
    OrdersTotalMagicSell(g_magic_448) < MaxSellOrders || MaxOpenOrders == FALSEls_168 "true";
       
    string ls_176 "false";
       if (
    AccountEquity() < EquityTarget || UseEquityTarget == FALSEls_176 "true";
       
    string ls_184 "false";
       if (
    TimeFilter == TRUE && !(Hour() < StartHour || Hour() >= EndHour)) ls_184 "true";
       
    string ls_192 "false";
       if (
    CloseFriday == TRUE && DayOfWeek() == && TimeCurrent() >= StrToTime(CloseFridayHour ":00")) ls_192 "true";
       if (
    l_minlot_56 == 0.01) {
          
    gd_632 2;
          if (
    maxLot <= 0.0maxLot MarketInfo(l_symbol_32MODE_MAXLOT);
       }
       if (
    l_minlot_56 == 0.1) {
          
    gd_632 1;
          if (
    maxLot <= 0.0maxLot AccountBalance() / 2.0 1000.0;
       }
       if (
    OrdersTotalMagicBuy(g_magic_440) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_440) {
                
    g_ticket_692 OrderTicket();
                
    OrderSelect(g_ticket_692SELECT_BY_TICKETMODE_TRADES);
                
    ld_200 += OrderLots();
                
    g_ord_open_price_456 OrderOpenPrice();
                
    g_ord_lots_488 OrderLots();
             }
          }
          if (
    ld_200 NormalizeDouble(g_ord_lots_488 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Ask <= g_ord_open_price_456 Step Point && ls_136 == "true" && ls_152 == "true" && ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" &&
                   
    ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
             if (
    StepMode == 1) {
                if (
    Ask <= g_ord_open_price_456 - (Step OrdersTotalMagicBuy(g_magic_440) + OrdersTotalMagicBuy(g_magic_440) - 2.0) * Point && ls_136 == "true" && ls_152 == "true" &&
                   
    ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" && ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
          }
       }
       if (
    OrdersTotalMagicSell(g_magic_448) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_448) {
                
    g_ticket_696 OrderTicket();
                
    OrderSelect(g_ticket_696SELECT_BY_TICKETMODE_TRADES);
                
    ld_208 += OrderLots();
                
    g_ord_open_price_464 OrderOpenPrice();
                
    g_ord_lots_496 OrderLots();
             }
          }
          if (
    ld_208 NormalizeDouble(g_ord_lots_496 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Bid >= g_ord_open_price_464 Step Point && ls_144 == "true" && ls_152 == "true" && ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" &&
                   
    ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_528"Trader Doni irawan ST"g_magic_4480Red);
                }
             }
             if (
    StepMode == 1) {
                if (
    Bid >= g_ord_open_price_464 + (Step OrdersTotalMagicSell(g_magic_448) + OrdersTotalMagicSell(g_magic_448) - 2.0) * Point && ls_144 == "true" && ls_152 == "true" &&
                   
    ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" && ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_520"Trader Doni irawan ST"g_magic_4480Red);
                } 
    هذا هو
    كود PHP:
    int start() {
       
    double ld_200;
       
    double ld_208;
       if (
    RiskMM) {
          if (
    Risk 0.1 || Risk 100.0) {
             
    Comment("Invalid Risk Value.");
             return (
    0);
          }
            
    LotsBuy =AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
          
    LotsSell AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
       }
       if (
    RiskMM == FALSE) {
       }
       if (
    gd_672 != 0.0 && MinProfit 0.0) {
          if (
    gd_672 <= AccountBalance() && AccountBalance() <= gd_672 MinProfitMultiplier 1;
          else {
             if (
    AccountBalance() < gd_672) {
             }
          }
       }
       
    gd_672 AccountBalance();
       
    double ld_0 0;
       
    ld_0 AccountEquity() - AccountBalance();
       if (
    ld_0 gd_684gd_684 ld_0;
       
    string ls_8 "false";
       if (
    UseBasketLoss == TRUE && ld_0 <= (-BasketLoss)) ls_8 "true";
       
    double ld_16 0;
       
    double ld_24 0;
       
    string l_symbol_32 OrderSymbol();
       
    double l_spread_40 MarketInfo(l_symbol_32MODE_SPREAD);
       
    double l_digits_48 MarketInfo(l_symbol_32MODE_DIGITS);
       
    double l_minlot_56 MarketInfo(l_symbol_32MODE_MINLOT);
       
    double l_ima_64 iMA(Symbol(), 0MaPeriod0MaModeMaPrice1);
       
    double l_istochastic_72 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_MAIN1);
       
    double l_istochastic_80 iStochastic(NULL0KPeriodDPeriodSlowingMODE_LWMA1MODE_SIGNAL1);
       
    string ls_88 "false";
       
    string ls_96 "false";
       if (
    l_istochastic_72 l_istochastic_80ls_88 "true";
       if (
    l_istochastic_72 l_istochastic_80ls_96 "true";
       
    string ls_104 "false";
       
    string ls_112 "false";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneBuyls_104 "true";
       if (
    ExtendedZone == FALSE && l_istochastic_80 SimpleZoneSellls_112 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneBuy && l_istochastic_80 EndZoneBuyls_104 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 StartZoneSell && l_istochastic_80 EndZoneSellls_112 "true";
       
    string ls_120 "false";
       
    string ls_128 "false";
       if (
    ExtendedZone == TRUE && l_istochastic_80 <= CloseLevelDnSell || l_istochastic_80 >= CloseLevelUpSellls_120 "true";
       if (
    ExtendedZone == TRUE && l_istochastic_80 >= CloseLevelUpBuy || l_istochastic_80 <= CloseLevelDnBuyls_128 "true";
       
    string ls_136 "false";
       
    string ls_144 "false";
       if (
    Ask l_ima_64 || MaFilter == FALSEls_136 "true";
       if (
    Bid l_ima_64 || MaFilter == FALSEls_144 "true";
       
    string ls_152 "false";
       if (
    MaxSpread == MaxSpread || UseMaxSpread == FALSEls_152 "true";
       
    string ls_160 "false";
       
    string ls_168 "false";
       if (
    OrdersTotalMagicBuy(g_magic_440) < MaxBuyOrders || MaxOpenOrders == FALSEls_160 "true";
       if (
    OrdersTotalMagicSell(g_magic_448) < MaxSellOrders || MaxOpenOrders == FALSEls_168 "true";
       
    string ls_176 "false";
       if (
    AccountEquity() < EquityTarget || UseEquityTarget == FALSEls_176 "true";
       
    string ls_184 "false";
       if (
    TimeFilter == TRUE && !(Hour() < StartHour || Hour() >= EndHour)) ls_184 "true";
       
    string ls_192 "false";
       if (
    CloseFriday == TRUE && DayOfWeek() == && TimeCurrent() >= StrToTime(CloseFridayHour ":00")) ls_192 "true";
       if (
    l_minlot_56 == 0.01) {
          
    gd_632 2;
          if (
    maxLot <= 0.0maxLot MarketInfo(l_symbol_32MODE_MAXLOT);
       }
       if (
    l_minlot_56 == 0.1) {
          
    gd_632 1;
          if (
    maxLot <= 0.0maxLot AccountBalance() / 2.0 1000.0;
       }
       if (
    OrdersTotalMagicBuy(g_magic_440) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_440) {
                
    g_ticket_692 OrderTicket();
                
    OrderSelect(g_ticket_692SELECT_BY_TICKETMODE_TRADES);
                
    ld_200 += OrderLots();
                
    g_ord_open_price_456 OrderOpenPrice();
                
    g_ord_lots_488 OrderLots();
             }
          }
          if (
    ld_200 NormalizeDouble(g_ord_lots_488 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Ask <= g_ord_open_price_456 Step Point && ls_136 == "true" && ls_152 == "true" && ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" &&
                   
    ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
             if (
    StepMode == 1) {
                if (
    Ask <= g_ord_open_price_456 - (Step OrdersTotalMagicBuy(g_magic_440) + OrdersTotalMagicBuy(g_magic_440) - 2.0) * Point && ls_136 == "true" && ls_152 == "true" &&
                   
    ls_160 == "true" && ls_176 == "true" && ls_192 == "false" && ls_88 == "true" && ls_104 == "true" && ls_184 == "false") {
                   
    g_ord_lots_472 Multiplier LotsBuy OrdersTotalMagicBuy(g_magic_440);
                   if (
    TakeProfit 0.0g_price_520 Ask TakeProfit Point;
                   else 
    g_price_520 0;
                   if (
    StopLoss 0.0g_price_536 Ask StopLoss Point;
                   else 
    g_price_536 0;
                   
    RefreshRates();
                   
    g_ticket_692 OrderSend(Symbol(), OP_BUYNormalizeDouble(g_ord_lots_472gd_632), Ask3g_price_536g_price_520"Trader Doni irawan ST"g_magic_4400Blue);
                }
             }
          }
       }
       if (
    OrdersTotalMagicSell(g_magic_448) > 0) {
          for (
    g_pos_552 0g_pos_552 OrdersTotal(); g_pos_552++) {
             
    OrderSelect(g_pos_552SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_448) {
                
    g_ticket_696 OrderTicket();
                
    OrderSelect(g_ticket_696SELECT_BY_TICKETMODE_TRADES);
                
    ld_208 += OrderLots();
                
    g_ord_open_price_464 OrderOpenPrice();
                
    g_ord_lots_496 OrderLots();
             }
          }
          if (
    ld_208 NormalizeDouble(g_ord_lots_496 Multipliergd_632) < maxLot) {
             if (
    StepMode == 0) {
                if (
    Bid >= g_ord_open_price_464 Step Point && ls_144 == "true" && ls_152 == "true" && ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" &&
                   
    ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_528"Trader Doni irawan ST"g_magic_4480Red);
                }
             }
             if (
    StepMode == 1) {
                if (
    Bid >= g_ord_open_price_464 + (Step OrdersTotalMagicSell(g_magic_448) + OrdersTotalMagicSell(g_magic_448) - 2.0) * Point && ls_144 == "true" && ls_152 == "true" &&
                   
    ls_168 == "true" && ls_176 == "true" && ls_192 == "false" && ls_96 == "true" && ls_112 == "true" && ls_184 == "false") {
                   
    g_ord_lots_480 Multiplier LotsSell OrdersTotalMagicSell(g_magic_448);
                   if (
    TakeProfit 0.0g_price_528 Bid TakeProfit Point;
                   else 
    g_price_528 0;
                   if (
    StopLoss 0.0g_price_544 Bid StopLoss Point;
                   else 
    g_price_544 0;
                   
    RefreshRates();
                   
    g_ticket_696 OrderSend(Symbol(), OP_SELLNormalizeDouble(g_ord_lots_480gd_632), Bid3g_price_544g_price_520"Trader Doni irawan ST"g_magic_4480Red);
                } 
    يجب أن تقوم بضبط باقي الكود حتى لا يعطي الإكسبرت أخطاء
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  6. #1506
    تاريخ التسجيل
    Feb 2011
    الإقامة
    الجزائر
    المشاركات
    128

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    هذا هو
    كود PHP:
    int start() {
       
    double ld_200;
       
    double ld_208;
       if (
    RiskMM) {
          if (
    Risk 0.1 || Risk 100.0) {
             
    Comment("Invalid Risk Value.");
             return (
    0);
          }
            
    LotsBuy =AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
          
    LotsSell AccountBalance()*Lot/(AccountBalance()-AccountProfit()); 
       }
       if (
    RiskMM == FALSE) {
       }
    );
                } 
    يجب أن تقوم بضبط باقي الكود حتى لا يعطي الإكسبرت أخطاء
    شكرا جزيلا لك الاخ MR.dollar على حبك لمساعدة اخوانك اتمنى من الله عز و جل جلاله ان يرزقك بالخير
    ان شاء الله ويجعله في ميزان حسناتك

    لقد قمت بتركيب الكود على الاكسبيرت و عملت تصحيح للاخطاء التي ظهرت
    على ما اعتقد ان التصحيح غير كافي لكي يعمل الاكسبيرت كما خطط له
    يعني نادرا ما يقوم بتطبيق هده المعادل
    و المخطط له هو ان يقوم بتطبيق هده المعادل كل ما تغير البالنس بالموجب او بالسالب
    من الافضل ان يقوم بحساب الناتج برقمين بعد الفاصلة عند تطبيق هده المعادلة
    على كل حال لقد قمت بفتح موضوع خاص لهدا لالكسبيرت على هده الرابط ارجو ان تطلع عليه

    http://forum.arabictrader.com/t137245.html
    آخر تعديل بواسطة Mustapoiha ، 16-01-2012 الساعة 02:09 PM

  7. #1507
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

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

    لقد قمت بتركيب الكود على الاكسبيرت و عملت تصحيح للاخطاء التي ظهرت
    على ما اعتقد ان التصحيح غير كافي لكي يعمل الاكسبيرت كما خطط له
    يعني نادرا ما يقوم بتطبيق هده المعادل
    و المخطط له هو ان يقوم بتطبيق هده المعادل كل ما تغير البالنس بالموجب او بالسالب
    من الافضل ان يقوم بحساب الناتج برقمين بعد الفاصلة عند تطبيق هده المعادلة
    على كل حال لقد قمت بفتح موضوع خاص لهدا لالكسبيرت على هده الرابط ارجو ان تطلع عليه

    http://forum.arabictrader.com/t137245.html
    جاري مراجعة الموضوع
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  8. #1508
    تاريخ التسجيل
    Mar 2009
    العمر
    29
    المشاركات
    550

    افتراضي

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


    هذا الكود لمؤشر TSR Signal Line


    كود PHP:
    //+------------------------------------------------------------------+ 
    //| HMA.mq4 
    //| Copyright © 2006 WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104 
    //| wizardserg@mail.ru 
    //| Revised by IgorAD,igorad2003@yahoo.co.uk |   
    //| 
    //| Personalized by iGoR AKA FXiGoR for the Trend Slope Trading method (T_S_T) 
    //| Link: 
    //| contact: thefuturemaster@hotmail.com                           
    //+------------------------------------------------------------------+
    #property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104" 
    #property link      "wizardserg@mail.ru" 

    #property indicator_chart_window 
    #property indicator_buffers 2 
    #property indicator_color1 Lime 
    #property indicator_color2 Red 
    //---- input parameters 
    extern int       period=15
    extern int       method=3;                         // MODE_SMA 
    extern int       price=0;                          // PRICE_CLOSE 
    //---- buffers 
    double Uptrend[];
    double Dntrend[];
    double ExtMapBuffer[]; 
    double prevtrend;


    //+------------------------------------------------------------------+ 
    //| Custom indicator initialization function                         | 
    //+------------------------------------------------------------------+ 
    int init() 

        
    IndicatorBuffers(3);  
        
    SetIndexBuffer(0Uptrend); 
        
    //ArraySetAsSeries(Uptrend, true); 
        
    SetIndexBuffer(1Dntrend); 
        
    //ArraySetAsSeries(Dntrend, true); 
        
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
        
        
    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
        
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4);
        
        
    IndicatorShortName("Execute Line("+period+")"); 
        return(
    0); 


    //+------------------------------------------------------------------+ 
    //| Custor indicator deinitialization function                       | 
    //+------------------------------------------------------------------+ 
    int deinit() 

        
    // ???? ????? ?????? ?????? 
        
    return(0); 


    //+------------------------------------------------------------------+ 
    //| ?????????? ???????                                               | 
    //+------------------------------------------------------------------+ 
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    


    //+------------------------------------------------------------------+ 
    //| Custom indicator iteration function                              | 
    //+------------------------------------------------------------------+ 
    int start() 

        
    int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
                      
        
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
        
        
    double vect[], trend[]; 
        
        if(
    Bars
            
    Bars;    

        
    ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
        
        for(
    0ex++) 
        { 
            
    vect[x] = 2*WMA(xperiod/2) - WMA(xperiod);        
     
    //       Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",  WMA(x, period)); 
        


        for(
    0e-periodx++)
         
            
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx);        
        
        for(
    e-period>= 0x--)
        {     
            
    trend[x] = trend[x+1];
            if (
    ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
        
        if (
    trend[x]>0)
        { 
    Uptrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]<0) {Uptrend[x+1]=ExtMapBuffer[x+1];
             
          
          }
          
    Dntrend[x] = EMPTY_VALUE;
         
        }
        else              
        if (
    trend[x]<0)
        { 
          
    Dntrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]>0) {Dntrend[x+1]=ExtMapBuffer[x+1];}
          
          
    Uptrend[x] = EMPTY_VALUE;
          
        }              
        
        
    //Print( " trend=",trend[x]);
        
        
       //Comment(Dntrend[1]+" "+Dntrend[2]+" "+Uptrend[1]+" "+Uptrend[2]);
        
        
    if (x==0){
        if ((
    trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1];
        }
        
        }
        return(
    0); 

    //+------------------------------------------------------------------+ 
    أردت أن أفهم كيف يشتغل

    الجزء البدائي مفهوم جيدا
    كود PHP:
    #property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104" 
    #property link      "wizardserg@mail.ru" 

    #property indicator_chart_window 
    #property indicator_buffers 2 
    #property indicator_color1 Lime 
    #property indicator_color2 Red 
    //---- input parameters 
    extern int       period=15
    extern int       method=3;                         // MODE_SMA 
    extern int       price=0;                          // PRICE_CLOSE 
    //---- buffers 
    double Uptrend[];
    double Dntrend[];
    double ExtMapBuffer[]; 
    double prevtrend
    ماعدا
    كود PHP:
    double ExtMapBuffer[]; 
    double prevtrend
    لم أفهم دورهما

    ثم في جزء int init
    كود PHP:
    int init() 

        
    IndicatorBuffers(3);  
        
    SetIndexBuffer(0Uptrend); 
        
    //ArraySetAsSeries(Uptrend, true); 
        
    SetIndexBuffer(1Dntrend); 
        
    //ArraySetAsSeries(Dntrend, true); 
        
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
        
        
    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
        
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4);
        
        
    IndicatorShortName("Execute Line("+period+")"); 
        return(
    0); 

    حسب ما أعرف هو الجزء المسؤل على ما يظهر في الشارت
    المؤشر يعطي Uptrend بلون أخضر و Dntrend بلون أحمر

    لاكن ما دور
    كود PHP:
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
    ثم جزء int deinit
    حسب ما اعرف يقوم بوظيفته عند نزع المؤشر من الشارت
    كود PHP:
    int deinit() 

        
    // ???? ????? ?????? ?????? 
        
    return(0); 


    //+------------------------------------------------------------------+ 
    //| ?????????? ???????                                               | 
    //+------------------------------------------------------------------+ 
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    

    مذا يقصد هذا السطر
    كود PHP:
      return(iMA(NULL0p0methodpricex)); 
    ثم جزء int start
    كود PHP:
    int start() 

        
    int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
                      
        
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
        
        
    double vect[], trend[]; 
        
        if(
    Bars
            
    Bars;    

        
    ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
        
        for(
    0ex++) 
        { 
            
    vect[x] = 2*WMA(xperiod/2) - WMA(xperiod);        
     
    //       Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",  WMA(x, period)); 
        


        for(
    0e-periodx++)
         
            
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx);        
        
        for(
    e-period>= 0x--)
        {     
            
    trend[x] = trend[x+1];
            if (
    ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
        
        if (
    trend[x]>0)
        { 
    Uptrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]<0) {Uptrend[x+1]=ExtMapBuffer[x+1];
             
          
          }
          
    Dntrend[x] = EMPTY_VALUE;
         
        }
        else              
        if (
    trend[x]<0)
        { 
          
    Dntrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]>0) {Dntrend[x+1]=ExtMapBuffer[x+1];}
          
          
    Uptrend[x] = EMPTY_VALUE;
          
        }              
        
        
    //Print( " trend=",trend[x]);
        
        
       //Comment(Dntrend[1]+" "+Dntrend[2]+" "+Uptrend[1]+" "+Uptrend[2]);
        
        
    if (x==0){
        if ((
    trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1];
        }
        
        }
        return(
    0); 

    هذا مفهوم
    كود PHP:
        int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
    لماذا عرف هذه المتغيرات بهذه الطريقة
    كود PHP:
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
    و لماذا هذا
    كود PHP:
     if(Bars
            
    Bars
    ثم هنا ما دور ArrayResize و ArraySetAsSeries
    كود PHP:
      ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
    ثم هناك 3 حلقات for يتطلب فهمها فهم ما قبلها طبعا

    أرجو من فضلك توضيح ما سبق وجزاك الله خيرا
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة cher90 ، 19-01-2012 الساعة 06:48 PM

  9. #1509
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

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


    هذا الكود لمؤشر TSR Signal Line


    كود PHP:
    //+------------------------------------------------------------------+ 
    //| HMA.mq4 
    //| Copyright © 2006 WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104 
    //| wizardserg@mail.ru 
    //| Revised by IgorAD,igorad2003@yahoo.co.uk |   
    //| 
    //| Personalized by iGoR AKA FXiGoR for the Trend Slope Trading method (T_S_T) 
    //| Link: 
    //| contact: thefuturemaster@hotmail.com                           
    //+------------------------------------------------------------------+
    #property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104" 
    #property link      "wizardserg@mail.ru" 

    #property indicator_chart_window 
    #property indicator_buffers 2 
    #property indicator_color1 Lime 
    #property indicator_color2 Red 
    //---- input parameters 
    extern int       period=15
    extern int       method=3;                         // MODE_SMA 
    extern int       price=0;                          // PRICE_CLOSE 
    //---- buffers 
    double Uptrend[];
    double Dntrend[];
    double ExtMapBuffer[]; 
    double prevtrend;


    //+------------------------------------------------------------------+ 
    //| Custom indicator initialization function                         | 
    //+------------------------------------------------------------------+ 
    int init() 

        
    IndicatorBuffers(3);  
        
    SetIndexBuffer(0Uptrend); 
        
    //ArraySetAsSeries(Uptrend, true); 
        
    SetIndexBuffer(1Dntrend); 
        
    //ArraySetAsSeries(Dntrend, true); 
        
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
        
        
    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
        
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4);
        
        
    IndicatorShortName("Execute Line("+period+")"); 
        return(
    0); 


    //+------------------------------------------------------------------+ 
    //| Custor indicator deinitialization function                       | 
    //+------------------------------------------------------------------+ 
    int deinit() 

        
    // ???? ????? ?????? ?????? 
        
    return(0); 


    //+------------------------------------------------------------------+ 
    //| ?????????? ???????                                               | 
    //+------------------------------------------------------------------+ 
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    


    //+------------------------------------------------------------------+ 
    //| Custom indicator iteration function                              | 
    //+------------------------------------------------------------------+ 
    int start() 

        
    int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
                      
        
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
        
        
    double vect[], trend[]; 
        
        if(
    Bars
            
    Bars;    

        
    ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
        
        for(
    0ex++) 
        { 
            
    vect[x] = 2*WMA(xperiod/2) - WMA(xperiod);        
     
    //       Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",  WMA(x, period)); 
        


        for(
    0e-periodx++)
         
            
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx);        
        
        for(
    e-period>= 0x--)
        {     
            
    trend[x] = trend[x+1];
            if (
    ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
        
        if (
    trend[x]>0)
        { 
    Uptrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]<0) {Uptrend[x+1]=ExtMapBuffer[x+1];
             
          
          }
          
    Dntrend[x] = EMPTY_VALUE;
         
        }
        else              
        if (
    trend[x]<0)
        { 
          
    Dntrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]>0) {Dntrend[x+1]=ExtMapBuffer[x+1];}
          
          
    Uptrend[x] = EMPTY_VALUE;
          
        }              
        
        
    //Print( " trend=",trend[x]);
        
        
       //Comment(Dntrend[1]+" "+Dntrend[2]+" "+Uptrend[1]+" "+Uptrend[2]);
        
        
    if (x==0){
        if ((
    trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1];
        }
        
        }
        return(
    0); 

    //+------------------------------------------------------------------+ 
    أردت أن أفهم كيف يشتغل

    الجزء البدائي مفهوم جيدا
    كود PHP:
    #property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104" 
    #property link      "wizardserg@mail.ru" 

    #property indicator_chart_window 
    #property indicator_buffers 2 
    #property indicator_color1 Lime 
    #property indicator_color2 Red 
    //---- input parameters 
    extern int       period=15
    extern int       method=3;                         // MODE_SMA 
    extern int       price=0;                          // PRICE_CLOSE 
    //---- buffers 
    double Uptrend[];
    double Dntrend[];
    double ExtMapBuffer[]; 
    double prevtrend
    ماعدا
    كود PHP:
    double ExtMapBuffer[]; 
    double prevtrend
    لم أفهم دورهما

    ثم في جزء int init
    كود PHP:
    int init() 

        
    IndicatorBuffers(3);  
        
    SetIndexBuffer(0Uptrend); 
        
    //ArraySetAsSeries(Uptrend, true); 
        
    SetIndexBuffer(1Dntrend); 
        
    //ArraySetAsSeries(Dntrend, true); 
        
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
        
        
    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
        
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4);
        
        
    IndicatorShortName("Execute Line("+period+")"); 
        return(
    0); 

    حسب ما أعرف هو الجزء المسؤل على ما يظهر في الشارت
    المؤشر يعطي Uptrend بلون أخضر و Dntrend بلون أحمر

    لاكن ما دور
    كود PHP:
    SetIndexBuffer(2ExtMapBuffer); 
        
    ArraySetAsSeries(ExtMapBuffertrue); 
    ثم جزء int deinit
    حسب ما اعرف يقوم بوظيفته عند نزع المؤشر من الشارت
    كود PHP:
    int deinit() 

        
    // ???? ????? ?????? ?????? 
        
    return(0); 


    //+------------------------------------------------------------------+ 
    //| ?????????? ???????                                               | 
    //+------------------------------------------------------------------+ 
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    

    مذا يقصد هذا السطر
    كود PHP:
      return(iMA(NULL0p0methodpricex)); 
    ثم جزء int start
    كود PHP:
    int start() 

        
    int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
                      
        
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
        
        
    double vect[], trend[]; 
        
        if(
    Bars
            
    Bars;    

        
    ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
        
        for(
    0ex++) 
        { 
            
    vect[x] = 2*WMA(xperiod/2) - WMA(xperiod);        
     
    //       Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",  WMA(x, period)); 
        


        for(
    0e-periodx++)
         
            
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx);        
        
        for(
    e-period>= 0x--)
        {     
            
    trend[x] = trend[x+1];
            if (
    ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
        
        if (
    trend[x]>0)
        { 
    Uptrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]<0) {Uptrend[x+1]=ExtMapBuffer[x+1];
             
          
          }
          
    Dntrend[x] = EMPTY_VALUE;
         
        }
        else              
        if (
    trend[x]<0)
        { 
          
    Dntrend[x] = ExtMapBuffer[x]; 
          if (
    trend[x+1]>0) {Dntrend[x+1]=ExtMapBuffer[x+1];}
          
          
    Uptrend[x] = EMPTY_VALUE;
          
        }              
        
        
    //Print( " trend=",trend[x]);
        
        
       //Comment(Dntrend[1]+" "+Dntrend[2]+" "+Uptrend[1]+" "+Uptrend[2]);
        
        
    if (x==0){
        if ((
    trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1];
        }
        
        }
        return(
    0); 

    هذا مفهوم
    كود PHP:
        int counted_bars IndicatorCounted(); 
        
        if(
    counted_bars 0
            return(-
    1); 
    لماذا عرف هذه المتغيرات بهذه الطريقة
    كود PHP:
    int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
    و لماذا هذا
    كود PHP:
     if(Bars
            
    Bars
    ثم هنا ما دور ArrayResize و ArraySetAsSeries
    كود PHP:
      ArrayResize(vecte); 
        
    ArraySetAsSeries(vecttrue);
        
    ArrayResize(trende); 
        
    ArraySetAsSeries(trendtrue); 
    ثم هناك 3 حلقات for يتطلب فهمها فهم ما قبلها طبعا

    أرجو من فضلك توضيح ما سبق وجزاك الله خيرا
    حتى تستطيع فهم الفائده من إضافة متغير أو داله في الكود فيجب أن تراجع أجزاء الكود بشكل كامل وتراجع القيم التي يأخذها هذا المتغير والأماكن التي توضع فيه
    فمثلا بالنسبه للجزء الأول
    كود PHP:
    double ExtMapBuffer[]; 
    double prevtrend
    المتغير ExtMapBuffer يأخذ قيمة المصفوفه
    كود PHP:
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx); 
    ثم تبدأ المقارنه
    كود PHP:
    if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1
    فإذا كانت قيمة ExtMapBuffer والتي عرفنا من أين تأخذ قيمتها للشمعه الحاليه أكبر من الشمعه السابقه
    يصبح trend=1 وإذا كانت أقل يصبح trend=-1
    لماذا شرحت هذا الجزء
    لأنه مرتبط بالمتغير الآخر prevtrend
    والذي سوف تجده في جزء التنبيه
    كود PHP:
     if ((trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1]; 
    فمثلا إذا كانت قيمة trend=1 فهو يأخذ قيمتين إما 1 أو -1 كما رأيت في الجزء السابقه فإذا كانت قيمته 1 أي أن الترند صاعد وقيمة prevtrend = -1 فسوف يصبح الناتج trend[1]*prevtrend=1*-1=-1
    فيتم التنبيه
    ثم تصبح قيمة prevtrend=1
    بعد ذلك عند تغير لون المؤشر مره أخرى فيصبح ترند هابط فيكون قيمة trend=-1 وسابقا أصبحت
    قيمة prevtrend=1 فأيضا يكون الناتج -1*1 < 0 فيتم التنبيه
    أي أن هذا المتغير مرتبط بالتنبيه بحيث يكون التنبيه فقط في كل مره يتغير لون المؤشر

    الجزء الآخر
    كود PHP:
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    

    المفروض أنك تعرف الدوال الخارجيه وكيفية عمل داله لإستدعائها لاحقا بداخل الداله start
    الأمر return يقوم بحفظ قيمة الداله بحيث في كل مره تقوم بإستدعائها تعود بهذه القيمه كأبسط مثال
    كود PHP:
    double Number()
    {
    double a=5+3;
    return(
    a);

    هذه الداله قمت بعملها بحيث يحسب قيمة 5+3 ثم يحفظها بإستخدام الأمر return
    ففي كل مره سأقوم بإستدعاء الداله
    كود PHP:
    Number() 
    سوف تصبح قيمتها 5+3=8
    لكن إذا جعلتها بهذا الشكل
    كود PHP:
    double Number()
    {
    a=5+3;

    فإذا قمت بإستدعائها لن تأخذ أي قيمة لأنني لم أطلب منه أن يحفظ قيمة الناتج

    الجزء الآخر
    كود PHP:
     int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
    قام بتعريف المتغير x لإستخدامه لاحقا في الحلقه
    كود PHP:
    for(0ex++) 
    فيمكنك إما تعريفه خارج الحلقه كما فعل هو أو داخل الحلقه
    كود PHP:
    for(int x 0ex++) 
    لا يوجد إختلاف

    الجزء الآخير في المشاركه القادمه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  10. #1510
    تاريخ التسجيل
    Mar 2009
    العمر
    29
    المشاركات
    550

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    حتى تستطيع فهم الفائده من إضافة متغير أو داله في الكود فيجب أن تراجع أجزاء الكود بشكل كامل وتراجع القيم التي يأخذها هذا المتغير والأماكن التي توضع فيه
    فمثلا بالنسبه للجزء الأول
    كود PHP:
    double ExtMapBuffer[]; 
    double prevtrend
    المتغير ExtMapBuffer يأخذ قيمة المصفوفه
    كود PHP:
    ExtMapBuffer[x] = iMAOnArray(vect0p0methodx); 
    ثم تبدأ المقارنه
    كود PHP:
    if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1
    فإذا كانت قيمة ExtMapBuffer والتي عرفنا من أين تأخذ قيمتها للشمعه الحاليه أكبر من الشمعه السابقه
    يصبح trend=1 وإذا كانت أقل يصبح trend=-1
    لماذا شرحت هذا الجزء
    لأنه مرتبط بالمتغير الآخر prevtrend
    والذي سوف تجده في جزء التنبيه
    كود PHP:
     if ((trend[1]*prevtrend)<0){Alert("TSR change");}
        
        
    prevtrend=trend[1]; 
    فمثلا إذا كانت قيمة trend=1 فهو يأخذ قيمتين إما 1 أو -1 كما رأيت في الجزء السابقه فإذا كانت قيمته 1 أي أن الترند صاعد وقيمة prevtrend = -1 فسوف يصبح الناتج trend[1]*prevtrend=1*-1=-1
    فيتم التنبيه
    ثم تصبح قيمة prevtrend=1
    بعد ذلك عند تغير لون المؤشر مره أخرى فيصبح ترند هابط فيكون قيمة trend=-1 وسابقا أصبحت
    قيمة prevtrend=1 فأيضا يكون الناتج -1*1 < 0 فيتم التنبيه
    أي أن هذا المتغير مرتبط بالتنبيه بحيث يكون التنبيه فقط في كل مره يتغير لون المؤشر

    الجزء الآخر
    كود PHP:
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    

    المفروض أنك تعرف الدوال الخارجيه وكيفية عمل داله لإستدعائها لاحقا بداخل الداله start
    الأمر return يقوم بحفظ قيمة الداله بحيث في كل مره تقوم بإستدعائها تعود بهذه القيمه كأبسط مثال
    كود PHP:
    double Number()
    {
    double a=5+3;
    return(
    a);

    هذه الداله قمت بعملها بحيث يحسب قيمة 5+3 ثم يحفظها بإستخدام الأمر return
    ففي كل مره سأقوم بإستدعاء الداله
    كود PHP:
    Number() 
    سوف تصبح قيمتها 5+3=8
    لكن إذا جعلتها بهذا الشكل
    كود PHP:
    double Number()
    {
    a=5+3;

    فإذا قمت بإستدعائها لن تأخذ أي قيمة لأنني لم أطلب منه أن يحفظ قيمة الناتج

    الجزء الآخر
    كود PHP:
     int x 0
        
    int p MathSqrt(period);              
        
    int e Bars counted_bars period 1
    قام بتعريف المتغير x لإستخدامه لاحقا في الحلقه
    كود PHP:
    for(0ex++) 
    فيمكنك إما تعريفه خارج الحلقه كما فعل هو أو داخل الحلقه
    كود PHP:
    for(int x 0ex++) 
    لا يوجد إختلاف

    الجزء الآخير في المشاركه القادمه
    كلمة شكراً ما تكفي و المعنى أكبر ما توفيه
    و بارك الله فيك أستاذ أسامة وجزاك الله خيرا
    ومنتظر الأتي بشوق

  11. #1511
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة cher90 مشاهدة المشاركة
    كلمة شكراً ما تكفي و المعنى أكبر ما توفيه
    و بارك الله فيك أستاذ أسامة وجزاك الله خيرا
    ومنتظر الأتي بشوق
    العفو أخي الكريم
    الجزء الثاني
    كود PHP:
     int p MathSqrt(period); 
    المتغير p قام بتعريفه وأعطاه القيمه جزء المتغير period وهو المتغير الخارجي الذي تقوم بتحديده في إعدادات المؤشر
    وإستخدمه لاحقا في حساب قيمة الموفينج
    كود PHP:
     ExtMapBuffer[x] = iMAOnArray(vect0p0methodx); 
    بمناسبة ذكر iMAOnArray فهو تقوم بحساب الموفينج أفريج لمصفوفه معينه
    فمثلا الموفينج العادي يقوم بحساب الموفينج أفريج لإغلاق 14 شمعه كمثال
    لكن الداله iMAOnArray تقوم بحساب الموفينج أفريج للمصفوفه التي يتم تحديدها مثلا حساب موفينج أفريج لآخر 14 قمه أو حساب موفينج أفريج لمؤشر الآر إس آي وهكذا
    لكن في هذا المؤشر فيقوم بحساب الموفينج أفريج للمصفوفه vect
    وهي تأخذ القيمه من الكود الآتي
    كود PHP:
    vect[x] = 2*WMA(xperiod/2) - WMA(xperiod); 
    لاحظ أن الداله WMA هي التي تكلمنا عنها سابقا في المشاركه السابقه

    كود PHP:
     int e Bars counted_bars period 1
    قام بتعريف المتغير e وأعطاه القيمة عدد الشموع - عدد الشموع التي تم عدها منذ آخر مره تم وضع المؤشر على الشارت + قيمة المتغير الخارجي period +1
    وغالبا نحن نستخدم هذه المعادله في المؤشرات حتى تنجنب حساب قيمة المؤشر لجميع الشموع في كل مره يتحرك السعر حتى لا يكون المؤشر بطيء
    مثلا عدد الشموع على الشارت هي 500 شمعه وعدد الشموع التي تم عدها منذ تم وضع المؤشر على الشارت هي 500 أيضا أي أنه لم تتكون شمعه جديده بعد
    الآن تكونت شمعه جديده
    فأصبحت عدد الشموع 501 وعدد الشموع التي تم عدها هي 500 فيصبح الناتج 501-500 +period + 1
    لنفرض أن period=15 وهو المتغير الخارجي الذي يتم تحديده في خصائص المؤشر
    فيصبح الناتج 501 -500 + 15 + 1 = 16 شمعه ويقوم بإستخدامها في هذه الحلقه
    كود PHP:
     for(int x 0ex++) 
    الجزء الآخر
    كود PHP:
        if(Bars
            
    Bars
    وهو مرتبط إلى حد كبير بالجزء السابق
    فلنفرض مثلا أن عدد الشموع على الشارت 500 وعدد الشموع التي تم عدها هي 0 أي أن المؤشر تم وضعه على الشارت الآن وسيبدأ بحساباته لأول مره
    فسوف تصبح قيمة e= 500 - 0 + 15 + 1
    فيكون الناتج 516 لكن عدد الشموع على الشارت أساسا 500 فقط فسوف يحدث خطأ في الحسابات بناء على الحلقه
    كود PHP:
    for(int x 0ex++) 
    لذلك وضع هذا الشرط بحيث إذا كانت قيمة e أكبر من عدد الشموع فإنه يجعلقيمة e هي عدد الشموع الكلي

    الجزء الأخير
    كود PHP:
    ArrayResize 
    هذه الداله تقوم بوضع حجم جديد للمصفوفه فمثلا كما تعلم أنا أريد عمل مصفوفه يوضع بها 30 عنصر أو 15 عنصر فأكتبها
    كود PHP:
    double array1[30];
      
    double array2[15]; 
    لكن لنفرض أني لا أعرف عدد قيم المصفوفه فيمكنني تعريفها بدون وضع حد للعناصر بها
    كود PHP:
     double array1[];
      
    double array2[]; 
    ثم يمكنني بإستخدام الداله ArrayResize أن أحدد عدد العناصر بها في أي وقت
    كود PHP:
     ArrayResize(array1,30);
      
    ArrayResize(array2,15); 
    وهذا ما فعله في هذه المصفوفات
    كود PHP:
       ArrayResize(vecte);   ArrayResize(trende); 
    فبعد أن عرف عدد الشموع e قام بتحديد المصفوفتين vect و trend بعدد هذه الشموع لأنها لن تأخذ أكثر من هذه القيم
    أما
    كود PHP:
    ArraySetAsSeries 
    فهي تقوم بعكس قيمة المصفوفه
    فمثلا إذا كانت قيمة المصفوفه array1
    للشمعه 0 = 14
    وللشمعه 1 = 20
    وللشمعه 2 = 50
    وللشمعه 3 = 120
    فعندما أجعل
    كود PHP:
    ArraySetAsSeries(array1,true); 
    فسوف تصبح قيمة
    الشمعه 0 = 120
    الشمعه 1 = 50
    الشمعه 2 = 20
    الشمعه 3 = 14
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  12. #1512
    تاريخ التسجيل
    Mar 2009
    العمر
    29
    المشاركات
    550

    افتراضي

    بارك الله فيك أستاذ أسامة

    شرحت لي
    كود PHP:
    ArraySetAsSeries 
    وقلت بأن دوره عكس قيمة المصفوفة لاكن ما الهدف من عكس قيم المصفوفتين vect و trend في المؤشر
    وهناك أيضا فوق في الجزء الأول
    كود PHP:
    ArraySetAsSeries(ExtMapBuffertrue); 
    عكس قيمة هذه المصفوفة ولاكن لماذا؟ ولو وضعنا false مكان true مذا سيحصل

    وسؤال أخر من فضلك
    كود PHP:
    double WMA(int xint p)  
    {  
        return(
    iMA(NULL0p0methodpricex));     

    وهنا أنا فهمت المبدأ مثل ما شرحت لي لاكن لا توجد إشارة تساوي (=) يعني ما هي قيمة wma بالضبط ؟
    أرجو أن لا تكون أسئلتي غبية

    وشكرا جزيلااااااااااااا

  13. #1513
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,178

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة cher90 مشاهدة المشاركة
    بارك الله فيك أستاذ أسامة

    شرحت لي
    كود PHP:
    ArraySetAsSeries 
    وقلت بأن دوره عكس قيمة المصفوفة لاكن ما الهدف من عكس قيم المصفوفتين vect و trend في المؤشر
    وهناك أيضا فوق في الجزء الأول
    كود PHP:
    ArraySetAsSeries(ExtMapBuffertrue); 
    عكس قيمة هذه المصفوفة ولاكن لماذا؟ ولو وضعنا false مكان true مذا سيحصل

    وسؤال أخر من فضلك
    كود PHP:
    double WMA(int xint p)  
    {  
        return(
    iMA(NULL0p0methodpricex));     

    وهنا أنا فهمت المبدأ مثل ما شرحت لي لاكن لا توجد إشارة تساوي (=) يعني ما هي قيمة wma بالضبط ؟
    أرجو أن لا تكون أسئلتي غبية

    وشكرا جزيلااااااااااااا
    لكل مبرمج طريقته في كتابة الكود وأنصحك إذا وجدت صعوبه في بعض الأكواد جرب تغييرها وتابع النتيجه وما هي التغييرات التي حدثت
    هو إستخدم عكس المصفوفه حتى تناسب الكود مثلا في هذا الجزء
    كود PHP:
            if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
            if (
    ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1
    فالطبيعي إذا راجعت هذه المقارنه بدون عكس الكود فهذا يعني إذا كانت قيمة ExtMapBuffer للشمعه الحاليه أكبر من الشمعه السابقه أو قيمة ExtMapBuffer الشمعه الحاليه أصغر من الشمعه السابقه
    لكن عند إستخدام عكس المصفوفه فسوف يعني
    إذا كان قيمة ExtMapBuffer للشمعه الحاليه أكبر من الشمعه التاليه وليس والسابقه
    إذا جعلت false بدل true فهذا يعني عدم عكس المصفوفه حاول تجربتها

    الجزء الثاني
    هذا الكود
    كود PHP:
    double WMA(int xint p

        return(
    iMA(NULL0p0methodpricex));    

    هو نفسه لو قمت بعمله على جزئين
    كود PHP:
    double WMA(int xint p

    double ma=iMA(NULL0p0methodpricex);
        return(
    ma);    

    وهذا
    كود PHP:
    double Number()
    {
    double a=5+3;
    return(
    a);

    هو نفسه هذا
    كود PHP:
    double Number()
    {
    return(
    5+3);

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

  14. #1514
    تاريخ التسجيل
    Dec 2007
    الإقامة
    اجادير جوهرة المغرب
    العمر
    33
    المشاركات
    1,402

    افتراضي

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

  15. #1515
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

    افتراضي


    السلام عليكم ورحمة الله
    الأخ العزيز أستاذ أسامه جزاك الله خيرا على ما تقدمه ,,,
    أنا أحاول أخي تعلم البرمجه وقرأت بعض الموضوعات هنا وهناك و أريدك لو تنصحني ببعض الكتب لتعلم البرمجه من البدايه تكون عندي كمراجع و أريد ملف به أكواد المؤشرات و به المرادفات البرمجيه للكلمات مثل أو ,, و ,, يساوي ,,,, و هكذا إن إمكن ,
    أنا قمت ببرمجة إكسبيرت يعتمد على مؤشر الإيشيموكو من المفترض أن يقوم بعمل الآتي : ‏
    يفتح صفقة بيع عند كسر السعر لسحابة الكوموسبان لأسفل بشرط خروج خط التنكن سن أيضا من الكوموسبان و يكون خط الشينكوسبان أسفل السعر ‏,,, و العكس في الشراء ,
    الإكسبيرت رقم ١ مفترض أن يعمل على المنصات الرباعيه و الخماسيه لكنه لا يفتح على المنصه نهائيا , أي لا يعمل و جربته على أكثر من منصه عندي .
    الإكسبيرت رقم ٢ برمجته بمساعدة برنامج يصنع الإكسبيرت ويتم وضع شرط البيع و الشراء وهو يقوم بالباقي و هذا البرنامج موجود بموضع إصنع إكسبيرتك بنفسك للأخ ram22‎ ‎‏ و هذا يعمل عند وضعه على أي منصه لكنه لا يفتح صفقات بنفس الطريقه و قد لا يفتح صفقات ‏,,,
    رجاء الإطلاع على الإكسبيرتين و إخباري بالخطأ ,
    وشكرا جزيلا
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

صفحة 101 من 657 الأولىالأولى ... 51919596979899100101102103104105106107111151201601 ... الأخيرةالأخيرة

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

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 10
    آخر مشاركة: 03-08-2012, 06:54 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع