5 wmz için bir komut dosyası çizin. - sayfa 15

 

Emtia piyasalarında, fiyatın genellikle günden güne inanılmaz gün içi tutarlılıkla hareket ettiği enstrümanlar var! Bu tekniğin (bence) çok iyi çalışacağı araçlar üzerinde. fena değil!

Örneğin, NGV0 (doğal gaz) için dün ve bugünün fiyat hareketine bakın ve dedikleri gibi "10 farkı bulun"...

 

Leonid. Evet, birinin geliştiğini umursamıyorum. Sağlık için! Tek bir sorum var: İki yıl önce bu kazananlar neredeydi? Neden 2008'de hiç kimse sol ayağının bir parmağıyla %1000'lik bir şey kesmedi?

 

Ve bir akımın belirtilerine gelince, burada uzun zamandır birçok kopyası kırılmış ve hatta faydalı bir şeyler yapılmış. Örneğin, burada https://www.mql5.com/ru/articles/1508#6586 Ancak orada, bir tür çamurlu gösterge kullanmanızı önerirler (ki bunu sevmiyorum). Muhtemelen mumun rengine bakmak daha iyidir (Leonid'inki gibi). Ama yine de, bu başlığın yazarının yöntemi, zaman kalıplarının dürüst bir şekilde tanımlanmasına hiç benzemiyor! Burada bir tür numeroloji zaten başlıyor ... Sanırım bu yüzden çoğu kişi bunu ironi ile algılıyor.

 

Lütfen bana neden önceden derlenmemiş bir Uzman Danışman olduğunu söyleyin. ve hatalar test edilmiyor, tek bir işlem yok, eksik olan ne?

 extern double Lots          = 0.1 ;
extern double StopLoss      = 120 ;
extern double TakeProfit    = 120 ;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int cnt, ticket, total;
   static int prevtime = 0 ;
   
        total= OrdersTotal ();
if (total< 1 ){   //если  нет открытых позиций
//+------------------------------------------------------------------+
//|               Открытие позиций понедельника                      |
//+------------------------------------------------------------------+
if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы
if ( Hour() == 23 )  { //если - 22 часа терминального времени
// BUY
       if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) {    
        
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask+StopLoss* Point , 3 , 0 ,Ask+TakeProfit* Point , "Regulest" , 0 , 0 , Green );}
         if (ticket < 0 ) {
             Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); 
             Sleep ( 10000 );  prevtime = Time[ 1 ];   return ( 0 ); }}
// SELL
if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы
if ( Hour() == 23 )  { //если - 22 часа терминального времени
     if ( Close[ 1 ]>= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) {
    
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid-StopLoss* Point , 3 , 0 ,Bid-TakeProfit* Point , "Regulest" , 0 , 0 , Red );
         if (ticket < 0 ) {
             Print ( "Ошибка открытия ордера SELL #" , GetLastError ()); 
             Sleep ( 10000 );  prevtime = Time[ 1 ];   return ( 0 ); }
          } 
        }
       return ( 0 );
     }}}
//+------------------------------------------------------------------+
//|                     Закрытие позиций                             |
//+------------------------------------------------------------------+
       if (OrderType()<=OP_SELL && OrderSymbol()== Symbol ())  
        {
         if (OrderType()==OP_BUY)   // long position is opened
           {
             // should it be closed?
             if ( DayOfWeek()== 1   && Hour() == 22 )
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Violet ); // close position
                 return ( 0 ); // exit
                }
              }
           }
         else // go to short position
           {
             // should it be closed?
             if ( DayOfWeek()== 1   && Hour() == 22 )
              {
               OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Violet ); // close position
               return ( 0 ); // exit
              }      
           }  
   return ( 0 );
  }  
//+------------------------------------------------------------------+
 
Profitabl :

Lütfen bana neden önceden derlenmemiş bir Uzman Danışman olduğunu söyleyin. ve hatalar test edilmiyor, tek bir işlem yok, eksik olan ne?

Koşul karşılanmayabilir. Örneğin Alpari'de Cuma günü saat değeri 23 olan bar yoktur. Yorumunuzdaki gibi 22 koyun.

 if ( Hour() == 23 )  { //если - 22 часа терминального времени
 

Hayır, sebep bu değil. Ve test cihazında kusursuz bir şekilde test edilen ancak "EA'nın ticaret yapmasına izin ver" seçeneği etkinken ticaret yapmayan tüm CHF EA'yı yeniden derlemek için buna ihtiyacım var.Bir uzman olarak, bir EA kurmak hakkında ne söyleyebilirsiniz? Bu arada, Salı günü danışman anlaşma yaptı ama sonra ben kodla ne yaptım ve o anlaşma yapmayı bıraktı. Normal bir Expert Advisor'ın feshedilme sebepleri nelerdir?

 
Tüm onay işaretlerini içeren bir rapor gönderin. Bu kadar geniş bir zaman diliminde böyle kaba bir test yöntemi, tamamen objektif bir sonuç vermez. Bu arada, böyle bir kodun nasıl en azından bir sonuç vermesi çok ilginç, çünkü açılış işlevlerinde açılış fiyatı yerine, stop loss koyma girişimi var)) bu bir tür anaokulu :) )
 
lasso :

Koşul karşılanmayabilir. Örneğin Alpari'de Cuma günü saat değeri 23 olan bar yoktur. Yorumunuzdaki gibi 22 koyun.


StopLoss, "Ask-StopLoss*Puan", "Bid-StopLoss*Puan" ile kaldırıldı ve test edilmeye başlandı ama bunlarla da test edilmek için ne yapmalıyım?

       if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) {    
        
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 , 0 ,Ask+TakeProfit* Point , "Regulest" , 0 , 0 , Green );}
         if (ticket < 0 ) {
             Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); 
             Sleep ( 10000 );  prevtime = Time[ 1 ];   return ( 0 ); }}
// SELL
if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы
if ( Hour() == 23 )  { //если - 22 часа терминального времени
     if ( Close[ 1 ]>= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) {
    
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 , 0 ,Bid-TakeProfit* Point , "Regulest" , 0 , 0 , Red );
 
Techno :
Tüm onay işaretlerini içeren bir rapor gönderin. Bu kadar geniş bir zaman diliminde böyle kaba bir test yöntemi, tamamen objektif bir sonuç vermez. Bu arada, böyle bir kodun nasıl en azından bir sonuç vermesi çok ilginç, çünkü açılış işlevlerinde açılış fiyatı yerine, stop loss koyma girişimi var)) bu bir tür anaokulu :) )


StopLoss'u bir virgülle taşıdım, iki yıldır yapmadığımı hatırlıyorum, her şey test edildi. Kenelere gerek yok, gördüğünüz koşullar çok basit "dünden önceki gün, dün, bugün"="yarın", HHH=AL, HHB=SAT, işlemler ihtiyacınız olanla aynı. 30 milyonluk dönemler için pozisyon açılamaması nedeniyle, tahminin doğruluğu daha düşüktür, işlemlerin yaklaşık %69'u karlıdır ve manuel olarak daha doğru bir şekilde, örneğin, yıllık grafik %327'si 254 işlem üzerine kuruludur ve %72'si vardır. işlemler karlı.

Danışman özenle kurulur, 40 tahminin her birinin kendi S\L ve T\P'si vardır, toplam -700ps olan bazı tahminler belirsiz olarak değiştirildi, ancak test cihazında rafine edildi ve lot hesaplama bloğu 10 Mevduatın %'si, 136 hafta boyunca %1070'i, yüz ile başlarsanız %8422476 kâra dönüşür. Kayıp riski nispeten küçüktür, %1000 sabit marjla art arda maksimum 8 kaybetme işlemi kolayca aktarılır, kritik an arka arkaya 14-16 işlem kaybetme civarındadır, bu teknikle neredeyse imkansız analiz sistemi.

Test cihazındaki pozisyonlar tutamaçlar tarafından zaten çoğaltılabilir, ancak danışmanın kendi başına ticaret yapması, kiralık bir sunucuya bağlaması daha iyi olur.

Kodu gösteremediğim veya size bir danışman veremediğim için kodunda neyin işlemleri engellediğini belirlememe yardımcı olmayacaksınız - bu finansal krizlere ve temerrütlere neden olabilecek psikolojik bir silah, forex'te açılış zararsız ve hizmet ediyor sırf kar etmek için ama bu kalıp bilimin her dalında her yerde var.

Başka bir deyişle, bir tahmin tablosu aldıktan sonra, aynı Uzman Danışmanı bir hafta içinde yapacaksınız.

 

İlk önce, ana hatayı düzeltin.

Pozisyonları kapatma seçeneği koşulun içinde

  
        total= OrdersTotal ();
if (total< 1 ){  //если  нет открытых позиций

Buradaki mantığı nerede görüyorsunuz? Pozisyon (pozisyon) yoksa pozisyon nasıl kapatılacak?