[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 315

 
söyle bana, strateji testçisinin geçiş sayısında herhangi bir kısıtlaması var mı? Test cihazını başlattım, testin başlangıcında şeridin üstünde sol altta şuydu: 0/1280 (25706). Saydım, 25 biçme makinesi tüm olası kombinasyonların sayısı. Ama testi 1088/1280 (25706) iken bitirdi. Sadece 1088 pas yaptığı ortaya çıktı? İlk iki sayı aslında ne anlama geliyor?
Dahası, bir şekilde garip düşünüyor ... 3 parametre için başka bir kriter eklediğinde, 25 adet 3 kat artmadı, ancak yaklaşık 40 biçme makinesi verdi. Bu bir hata mı yoksa bir yerde yanlış mıyım?
 
AndrejFX :
söyle bana, strateji testçisinin geçiş sayısında herhangi bir kısıtlaması var mı? Test cihazını başlattım, testin başlangıcında şeridin üstünde sol altta şuydu: 0/1280 (25706). Saydım, 25 biçme makinesi tüm olası kombinasyonların sayısı. Ama testi 1088/1280 (25706) iken bitirdi. Sadece 1088 pas yaptığı ortaya çıktı? İlk iki sayı aslında ne anlama geliyor?
Dahası, bir şekilde garip düşünüyor ... 3 parametre için başka bir kriter eklediğinde, 25 adet 3 kat artmadı, ancak yaklaşık 40 biçme makinesi verdi. Bu bir hata mı yoksa bir yerde yanlış mıyım?
kılavuzu okuyun. orada kişisel olarak ayrıntılı olarak.
 

Takip konusunda yardım!!!

Halihazırda açılmış StopLos'ları, önceki mumların Yüksek veya Düşük seviyesinden "TrailingStop" mesafesine kadar takip etmelidir. Expert Advisor'ı başlattıktan sonra, yalnızca ilk açık anlaşmadaki siparişle çalışır. StopLoss tetiklendikten ve bir sonraki işlem açıldıktan sonra StopLoss emri takip edilmez . Eğer doğru anladıysam bunun nedeni " ORDER_SL " değişkeninin değişmemesi ve sıra değiştirme koşulunun karşılanmamasıdır!? Ve eğer öyleyse, neden ve nasıl düzeltilir?

İşte trol kodu:

 int ORDER= OrdersTotal ();    
OrderSelect (ORDER,SELECT_BY_TICKET,MODE_TRADES);
int ORDER_Type=OrderType();
double ORDER_SL =OrderStopLoss();
double Point_High=iHigh(OrderSymbol(), 0 , 2 )-TrailingStop* Point ;
double Point_Low=iLow(OrderSymbol(), 0 , 2 )+TrailingStop* Point ;
             if (ORDER_Type==OP_BUY && ORDER_SL <Point_High){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(), 0 , CLR_NONE );
                     while (!IsTradeAllowed()) Sleep ( 100 );
            }
            if (ORDER_Type==OP_SELL && ORDER_SL >Point_Low){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(), 0 , CLR_NONE );
                     while (!IsTradeAllowed()) Sleep ( 100 );
            }

İşte danışmanın tamamı:

Dosyalar:
 

bu kod

 int ORDER= OrdersTotal ();    
OrderSelect (ORDER,SELECT_BY_TICKET,MODE_TRADES);

incilere konmalıdır. En ilginç şey, yalnızca ilk sırada test cihazında olmasına rağmen işe yaramasıdır.

 
Christoff :

Takip konusunda yardım!!!

Halihazırda açılmış StopLos'ları, önceki mumların Yüksek veya Düşük seviyesinden "TrailingStop" mesafesine kadar takip etmelidir. Expert Advisor'ı başlattıktan sonra, yalnızca ilk açık anlaşmadaki siparişle çalışır. StopLoss tetiklendikten ve bir sonraki işlem açıldıktan sonra StopLoss emri takip edilmez . Eğer doğru anladıysam bunun nedeni "ORDER_SL" değişkeninin değişmemesi ve sipariş değiştirme koşulunun karşılanmamasıdır!? Ve eğer öyleyse, neden ve nasıl düzeltilir?

İşte trol kodu:

İşte danışmanın tamamı:

Bir şeyi trollemeden önce onu seçmeniz gerekir. İlk önce danışman tarafından açık olanların bir seçimiyle terminalin tüm açık konumları arasında döngü yapmanız gerekir. Döngünün her yinelemesinde, gerekli sıra seçilirse, izinizi doğrudan döngüden çağırın. Sadece bu durumda, EA tarafından açılan tüm pozisyonlar takip edilecektir.

Aşağı yukarı şöyle:

 void Trailing( string sy, int mn) 
{
   int       i, err, ORDER_Type, k= OrdersTotal ();
   double    PointX, ORDER_SL , Point_High, Point_Low;
 
   if (sy== "0" ) sy= Symbol ();
   int     dg=MarketInfo(sy, MODE_DIGITS);
   double pt=MarketInfo(sy, MODE_POINT);
   
   if (dg== 5 || dg== 3 ) PointX=pt* 10 ;
   if (dg== 4 || dg== 2 ) PointX=pt;
   
   for (i= 0 ; i<k; i++) {
       if ( OrderSelect (i, SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)         continue ;
         if (OrderType()> 1 )             continue ;
         if (OrderMagicNumber()!=mn)   continue ;
               
         ORDER_Type=OrderType();
         ORDER_SL =OrderStopLoss();
         Point_High=iHigh(OrderSymbol(), 0 , 2 )-TrailingStop*PointX;
         Point_Low=iLow(OrderSymbol(), 0 , 2 )+TrailingStop*PointX;
         if (ORDER_Type==OP_BUY)
             if ( NormalizeDouble (Point_High- ORDER_SL ,dg)> 0 ) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(), 0 , CLR_NONE );
             while (!IsTradeAllowed()) Sleep ( 100 );
            }
         if (ORDER_Type==OP_SELL)
             if ( NormalizeDouble ( ORDER_SL -Point_Low,dg)> 0 ) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(), 0 , CLR_NONE );
             while (!IsTradeAllowed()) Sleep ( 100 );
            }
         }
       if (! OrderSelect (i, SELECT_BY_POS)) {
         err= GetLastError ();
         Print ( "FUNC Trailing: Ошибка выбора ордера - " , err);
         break ;
         }
      }
   return ;
}

Sondaki kodunuza bakmadım, olduğu gibi bıraktım (düzenlemeniz gerekse de - StopLevel seviyesini aşmamak için bir kontrol ekleyin, ya da belki başka bir şey ekleyin), karşılaştırırken siparişler ve normalleştirme arasında yalnızca bir döngü ekledim sondaki kodunuzdaki çift değerler ve böylece ... biraz kullanışlılık ... Bunu anlamak istiyorsanız, çözeceksiniz :)

not. Kodu kontrol etmedim, olduğu gibi yazdım, hatalar olabilir. Bu sadece bir örnek.

Şimdi, konumları takip etmeniz gereken kodun yerine şu işlevi çağırın:

Trailing( Symbol (), Magic);
Sihir - EA'da benzersiz herhangi bir tamsayı olarak ayarlanan sihirli sayı, böylece emirlerini başka bir EA'nın sıralarından veya hiçbir sihrin olmadığı manuel olarak açılanlardan ayırt eder.
Fonksiyonu çağırırken Symbol()'den ayrılırsanız, Uzman Danışmanın üzerinde durduğu para birimi enstrümanının pozisyonları izlenecektir.
Veya Symbol() yerine, pozisyonlarını takip etmek istediğiniz döviz çiftinin adını girin.
 
Lütfen tek bir bilgisayarda MT4 terminalleri arasında en hızlı şekilde veri alışverişinin sağlanmasına yardımcı olunuz.
 
trave :
Lütfen tek bir bilgisayarda MT4 terminalleri arasında en hızlı şekilde veri alışverişi yapılmasına yardımcı olunuz.

İşlemleri kopyalamanız gerekiyorsa, işte fotokopi makinesi. Sadece veri alışverişi ise, o zaman bir dll-ku yapmanız gerekir.
Dosyalar:
kopirowshik.zip  465 kb
 
drknn :

Fırsatları kopyalamanız gerekiyorsa, işte fotokopi makinesi. Sadece veri alışverişi ise, bir dll yapmanız gerekir.

Senin serbest bırakılmasıyla ... :-)))
 
Vinin :

Bu forumda çalıntı şeyler paylaşmayın. Bu banyoya giden yol

bu mecazi anlamda bu hindi tarafımdan kesinleştirilmiştir.
 
Roman. :
Senin serbest bırakılmasıyla ... :-)))
Vladimir, bir seçim gönderdiğine göre, görünüşe göre bu konuyla ilgilendin.
Bir değişkeni terminalden terminale bellek, bir Windows değişkeni vb. aracılığıyla, yani bir dosya üzerinden geçirmek için hazır basit bir seçenek görmedim?
Son bir seçenek olarak, bir terminaldeki başka bir terminalden Close[0] çizgisini çevrimiçi olarak çizen bir gösterge. Bir onay grafiğinde, bu karşılaştırma çok net görünecektir.