Hatalar, hatalar, sorular - sayfa 2734

 
Testler doğru ve çok doğru bir şekilde yapılmalıdır.

Ayrıca tekrarlanabilir. Ayrıca, kendinizinkini kaynaktan derlemeden başkalarının borçlarını çalıştırmanız söz konusu değil.
 

herkese iyi günler bende bir şey sormak istiyorum

ben acemiyim biri açıklayabilir mi

Sadece Rusya'da değil, farklı tüccarlarla bir demo hesabı açtığımda, bir sorunla karşılaştım, nedense bir bardağa lot koyamıyorum, yani. Yapabilirim ama sadece piyasa fiyatından! Forex platformu.

Neyi büyük olasılıkla bilmediğim bir şeye açıklayın!

Moskova Borsasında BCS aracılığıyla her şey yolunda, yani. Camdan her yere gidebilirim ve yine de başvurum alınır. Ancak Forex terminallerinde böyle bir şey işe yaramaz, sadece piyasa fiyatından Devasa bir spread ile satın alabilirim!

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
sitede arama çalışmıyor
 
Vladimir Pastushak :
sitede arama çalışmıyor
.
 
Alexey Viktorov :
.

Şimdi zaten çalışıyor.

 
Renat Fatkhullin :
Testler doğru ve çok doğru bir şekilde yapılmalıdır.

testler yapmak planlanmamıştı, sadece olasılıkları değerlendirmek gerekiyordu

Tamam, böyle süslü bir biçimde reddettiğinizi varsayacağız, yukarıdaki VS kaynaklarını teklif ettim

 

Güzel gün!

takip fonksiyonu.

Sövenin 4756'ya strateji test cihazında bir hata verdiğini söyle. Bir komut dosyasında çalıştırıyorum ve işe yarıyor.

 int Tralling( int PointsTral= 200 )
  {
   MqlTradeRequest Request;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols[]= { "" };
   double SymbPt,sl,tp,
          PriceOpen[]= { 0 };
   i= 0 ;
   PosTot= PositionsTotal ();
   if (PosTot> 0 )
     {
       while (i<PosTot)
        {
         Symbols[i] = PositionGetSymbol (i);
         digits=( int ) SymbolInfoInteger (Symbols[i], SYMBOL_DIGITS );
         if ( PositionSelect (Symbols[i]))
           {
            PriceOpen[i] = PositionGetDouble ( POSITION_PRICE_OPEN );
            SymbPt = SymbolInfoDouble (Symbols[i], SYMBOL_POINT );
             if ( PositionGetInteger ( POSITION_TYPE ) == 0 )
              {
               if ( SymbolInfoDouble (Symbols[i], SYMBOL_BID ) >= PriceOpen[i]+(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols[i], SYMBOL_BID )> PositionGetDouble ( POSITION_SL )+(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols[i], SYMBOL_BID )-(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Request.action= TRADE_ACTION_SLTP ;
                     Request.symbol = Symbols[i];
                     Request.sl= NormalizeDouble (sl,digits);
                     Request.tp= NormalizeDouble (tp,digits);
                     Request.position= PositionGetInteger ( POSITION_TICKET );
                     if (! OrderSend (Request,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

             if ( PositionGetInteger ( POSITION_TYPE ) == 1 )
              {
               if ( SymbolInfoDouble (Symbols[i], SYMBOL_ASK ) <= PriceOpen[i]-(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols[i], SYMBOL_ASK )< PositionGetDouble ( POSITION_SL )-(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols[i], SYMBOL_ASK )+(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Request.action= TRADE_ACTION_SLTP ;
                     Request.symbol = Symbols[i];
                     Request.sl= NormalizeDouble (sl,digits);
                     Request.tp= NormalizeDouble (tp,digits);
                     Request.position= PositionGetInteger ( POSITION_TICKET );
                     if (! OrderSend (Request,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

           }
         else
           {
             Alert ( "Не удалось выделить оредер по символу. " , Symbols[i], " Ошибка " , GetLastError ());
           }
         i++;
        }
     }
   return ( 1 );
  }

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта...
 

Güzel gün!

Bir hata bulamıyor. Bu bir takip durağı. Bir komut dosyası ile grafiğe atarsam, çalışır. Strateji test cihazında 4756 (Sunucuya gönderilemiyor) hatası veriyor

Bana yardım et lütfen!

 int Tralling( int PointsTral= 200 )
  {
   MqlTradeRequest Reques;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols;
   double SymbPt,sl,tp,
          PriceOpen;
   i= 0 ;
   PosTot= PositionsTotal ();
   if (PosTot> 0 )
     {
       while (i<PosTot)
        {
         Symbols = PositionGetSymbol (i);
         digits=( int ) SymbolInfoInteger (Symbols, SYMBOL_DIGITS );
         if ( PositionSelect (Symbols))
           {
            PriceOpen = PositionGetDouble ( POSITION_PRICE_OPEN );
            SymbPt = SymbolInfoDouble (Symbols, SYMBOL_POINT );
             if ( PositionGetInteger ( POSITION_TYPE ) == 0 )
              {
               if ( SymbolInfoDouble (Symbols, SYMBOL_BID ) >= PriceOpen+(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols, SYMBOL_BID )> PositionGetDouble ( POSITION_SL )+(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols, SYMBOL_BID )-(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Reques.action= TRADE_ACTION_SLTP ;
                     Reques.symbol = Symbols;
                     Reques.position= PositionGetInteger ( POSITION_TICKET );
                     Reques.sl= NormalizeDouble (sl,digits);
                     Reques.tp= NormalizeDouble (tp,digits);
                     if (! OrderSend (Reques,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

             if ( PositionGetInteger ( POSITION_TYPE ) == 1 )
              {
               if ( SymbolInfoDouble (Symbols, SYMBOL_ASK ) <= PriceOpen-(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols, SYMBOL_ASK )< PositionGetDouble ( POSITION_SL )-(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols, SYMBOL_ASK )+(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Reques.action= TRADE_ACTION_SLTP ;
                     Reques.symbol = Symbols;
                     Reques.position= PositionGetInteger ( POSITION_TICKET );
                     Reques.sl= NormalizeDouble (sl,digits);
                     Reques.tp= NormalizeDouble (tp,digits);
                     if (! OrderSend (Reques,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

           }
         else
           {
             Alert ( "Не удалось выделить оредер по символу. " , Symbols[i], " Ошибка " , GetLastError ());
           }
         i++;
        }
     }

   return ( 1 );
  }
 
Igor Makanu :

testler yapmak planlanmamıştı, sadece olasılıkları değerlendirmek gerekiyordu

Tamam, böyle süslü bir biçimde reddettiğinizi varsayacağız, yukarıdaki VS kaynaklarını teklif ettim

İstisnai bir iddiada bulundunuz ve bunu kanıtlayamadınız. Ayrıca, bu yasak olan bir dll'yi ilk gönderişiniz değil.

Oynamak için herhangi bir kaynak göremiyorum.

 
Renat Fatkhullin :

İstisnai bir iddiada bulundunuz ve bunu kanıtlayamadınız. Ayrıca, bu yasak olan bir dll'yi ilk gönderişiniz değil.

Oynamak için herhangi bir kaynak göremiyorum.

Bir ifadenin münhasırlığı nedir? Sadece eski terminal için performans ölçümünün çok iyi sonuçlar verdiğini görüyorum, IMHO, dedikleri gibi - yüzyıllardır yapılan iyi bir şey

Bugün bir PC'de kontrol ettim, sonuçlar bire bir MT4 / MT5, bir dizüstü bilgisayarda tekrar kontrol ettim, ayrıca herhangi bir fark görmedim, Win10 servisinin arka planda "diski kemiriyor" olması kuvvetle muhtemeldir. Test, dizüstü bilgisayarda aktif çalışma kurmadım, Vin varsayılan olarak gece saatine ayarladım.

Geceleri hala farklılıkların ne olduğunu bulma arzusu vardı, bugün, ilkeye göre - çalışmasına izin verin, kaynak kodunu yorumlarla oluşturmanın veya başlamak için parçalar halinde kesmenin anlamını görmüyorum. durumun veya tartışmanın bir analizini yapmak istemiyorum.


Yeni yapının hatalarından:

bu, terminal günlüğündeki doğru bilgi değil:

2020.05.06 19:03:03.895 terminal Windows 10 build 18363, Intel Core i3 M 380 @ 2.53GHz, 0 / 2 Gb bellek, 149 / 237 Gb disk, IE 11, UAC, GMT+4

görev yöneticisinde 2.97 GB'den ücretsiz 920 MB kazanın, önceki yapılarda sistem hakkında daha doğru bilgiler vardı