MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 220

 
danya-asg :

Hatamı anladım ama nasıl çözeceğimi anlamadım. Görev normalde her saniyede bir başlar, ancak mevcut mumun başlangıcından itibaren zamanı doğru bir şekilde hesaplamıyorum.

Seconds() işlevi , bilinen son tik verisine göre saniyeler verir ve dakika mumunun açıldığı andan, tik olmasa bile, işlevin çağrıldığı ana kadarki gerçek saniye sayısını bir şekilde hesaplamam gerekiyor. son birkaç saniye için hiç.

TimeSeconds (TimeLocal() ) veya ( TimeLocal() - Time[0]) da çalışmayacaktır, çünkü bilgisayarın yerel saati sunucudan birkaç saniye farklı olabilir. Sorun nasıl çözülür?


OnTimer() her saniye çalıştırıyorsunuz,

 void OnTimer ()
{
OnTick (); //-- старт каждую секунду
}
 
Alekseu Fedotov :


OnTimer() her saniye çalıştırıyorsunuz,


Başlamak için, o zaman başlar, sadece programın doğru çalışması için her saniye sunucu zamanını göstermesine ihtiyacım var ve burada zaten bir sonraki onayın gelip gelmediğine bağlı. Gelmediyse, zamanlayıcı başladı, ancak zaman hala geride kaldı, sorun bu.
 

Şimdiye kadar bulduğum, ancak bir şekilde çarpık olan tek şey:

 int sek
void OnTick ()
{
if ( Seconds () > sek)
sek = Seconds ();
Clicker (); //-- старт каждый тик
}
void OnTimer ()
{
sek = TimeSeconds ( TimeLocal ());
Clicker (); //-- старт каждую секунду
}

Ve bunun için her 10 dakikada bir bilgisayarıma zaman senkronizasyonu koymak zorunda kaldım.

 
danya-asg :

Şimdiye kadar bulduğum, ancak bir şekilde çarpık olan tek şey:

Ve bunun için her 10 dakikada bir bilgisayarıma zaman senkronizasyonu koymak zorunda kaldım.


100-200 ms'lik bir milisaniye zamanlayıcı yapmanız ve tamamen bunun içinde çalışmanız gerekir.
Saniyeler çok uzun ve sık sık atlıyorlar.

 EventSetMillisecondTimer ( 200 );
GetTickCount ();
 

Lütfen, alt kısmına ulaşmak için ne okumaya başlayacağımı söyle? başında, ortasında, sonunda ne yapılması gerektiği, tam olarak ne girilmesi gerektiği hiç belli değil. görev hindinin üzerine baykuş yapmak ve girişten sonra stopu 2 mum sürüklemektir, eğer işlem mevcut trendin tersiyse, daha sonra stopu aynı şekilde ters çevirerek anlaşmayı kapatıp ters çevirmede açmaktır. birden fazla video normu bulamadığım ve sabit 20 ve 80'i giriş ve çıkış noktaları nasıl yapacağım hakkında hiçbir fikrim yok. Boşlukları ortadan kaldırmak için Cuma günü anlaşmaları kapatma ve Pazartesi günü açma işlevlerini de ekleyin. bu dava neden bu kadar karmaşık? 4 parametre + gün eklemeniz yeterli görünüyor 2 yıldır borsadayım ve ancak büyük ihtimalle böyle bir aracın birleşmeyeceğini söyleyebilirim

Dosyalar:
f9h46khtl1.png  29 kb
 
novikov433 :

Lütfen, alt kısmına ulaşmak için ne okumaya başlayacağımı söyle? başında, ortasında, sonunda ne yapılması gerektiği, tam olarak ne girilmesi gerektiği hiç belli değil. görev hindinin üzerine baykuş yapmak ve girişten sonra stopu 2 mum sürüklemektir, eğer işlem mevcut trendin tersiyse, daha sonra stopu aynı şekilde ters çevirerek anlaşmayı kapatıp ters çevirmede açmaktır. birden fazla video normu bulamadığımı ve sabit 20 ve 80'i giriş ve çıkış noktaları nasıl yapacağım hakkında hiçbir fikrim yok. Boşlukları ortadan kaldırmak için Cuma günü anlaşmaları kapatma ve Pazartesi günü açma işlevlerini de ekleyin. bu dava neden bu kadar karmaşık? 4 parametre + gün eklemeniz yeterli görünüyor 2 yıldır borsadayım ve ancak büyük ihtimalle böyle bir aracın birleşmeyeceğini söyleyebilirim

Kusura bakmayın, sarhoş bir budala... Ama size şunu söyleyeceğim: "Böyle bir aracın boşa gitmeyeceğinden" eminseniz, manuel olarak 20 dolar kazanmanızı ve bu danışmanı freelance olarak sipariş etmenizi engelleyen nedir? Sizi temin ederim, oradaki saygın insanların çoğu bu TS'yi dağıtmayacak ve hatta danışman hiçbir yerde...
 
Alexey Viktorov :
Kusura bakmayın, sarhoş bir budala... Ama size şunu söyleyeceğim: "Böyle bir aracın boşa gitmeyeceğinden" eminseniz, manuel olarak 20 dolar kazanmanızı ve bu danışmanı freelance olarak sipariş etmenizi engelleyen nedir? Sizi temin ederim, oradaki saygın insanların çoğu bu TS'yi dağıtmayacak ve hatta danışman hiçbir yerde...

Kendim bir danışman yapmayı nasıl anlayacağımı öğrenmek istiyorum, yoksa belki gelecekte piyasa değişecek ve örneğin algoritmayı biraz değiştirmek için tekrar fazla ödeme yapmam gerekecek mi? Aslında, kârsız siparişlerin başabaşa transfer edilmesinden ve sizin sadece trendi beklemeniz gerektiğinden TS boşalmayacaktır.

Bir tür baykuş yapıcısında ts yapmak gerçekten mümkün mü? sadece en azından bunu nasıl yapacağınıza dair en temel bilgiyi yapın ve belirli bir yerde durma veya belirli günlerde alım satım emri verme gibi bazı işlevleri zaten ekleyin, ne eklenecek.

beynin pişirmediği bir şey, yapıcıda bile 1,2,3 vb. yapmanız gerekir ve neden en önemli şey her şeyi bu sırayla oklarla bağlamaktır, kim sadece mql 4'ün eğitimini yapar ve İnternet savaşçılarının, bunun tam olarak neden olduğunu açıklayacak hiçbir şeyin olmadığı, yani kelimelerle, o zaman kendiniz yeni bir şey yapmayacaksınız, ancak kodlarını kopyalamak zorunda kalacaksınız. ... hangi düzenden sorumlu olduğunu biliyorlar ve rastgele kurcalamadılar .. ..peki, bırakın profesyoneller piramit yapsın, dinamik parti, okuryazar durma; benim görevim başka bir şeyde yatıyor - gerekli filtreleri indirmek ve bir trend oluşumunun özünü anlamak. Yardım için teşekkürler!

 
novikov433 :

Kendim bir danışman yapmayı nasıl anlayacağımı öğrenmek istiyorum, yoksa belki gelecekte piyasa değişecek ve örneğin algoritmayı biraz değiştirmek için tekrar fazla ödeme yapmam gerekecek mi? Aslında, kârsız siparişlerin başabaşa transfer edilmesinden ve sizin sadece trendi beklemeniz gerektiğinden TS boşalmayacaktır.

Bir tür baykuş yapıcısında ts yapmak gerçekten mümkün mü? en azından bunu nasıl yapacağınıza dair en temel bilgiyi yapın ve belirli bir yerde durma veya belirli günlerde alım satım emri verme gibi bazı işlevleri zaten ekleyin, ne eklenecek

Otomatik bir telefon santrali için teknik bir şartname yazmak ve teknik şartnamede tüm hatların yorumlandığını belirtmek gerçekçidir - biraz daha fazla ödeyin, ancak nasıl ve neyin işe yaradığını göreceksiniz ve ancak o zaman kademeli olarak çalışma üzerinde değişiklik yapın. kodlayın ve değişiklikleri izleyin - ve kendi kendine öğrenme başlayacaktır.
 
novikov433 : ... ... bir Uzman Danışmanın nasıl yapılacağını anlamak istiyorum ... peki, TC aslında birleşmeyecek, çünkü kârsız siparişler başabaşa aktarılıyor ve sadece trendi beklemeniz gerekiyor
Sevgili novikov433 !!! Sana programlamayı öğreteceğim ya da sana ücretsiz bir danışman yazarım ya da her ikisini birden !!! Karşılığında, kaybedilen siparişlerin başabaşa nasıl çevrildiğini öğretin. Basit bir örnekle mümkündür. Karıma bir emir (sipariş) veriyorum: sabahın erken saatlerinde bir kova patates almak için pazarda ve saat 10'a kadar (temel analiz) fiyat yükselir - satmak için. Ama bazen on buçukta (haberler) bir araba patates getiriyorlar. Ve fiyat (haberlerde) hemen düşer ve günün sonunda, hatta tüm hafta boyunca. StopLoss koydum - fiyat 10 ruble düşerse, hemen satabildiğiniz kadar (piyasa fiyatından) satın. Kaybı ortadan kaldırmak için sıra nasıl değiştirilir. Bu seçenek ilginçse - sabununuzu kişisel olarak yazın.
 
Merhaba. Lütfen test cihazında test sırasında bir hatayla başa çıkmama yardım edin. Tüm keneler üzerinde test sırasında, EA 1. buystop anlaşmasını açar, koşul geçmedi ve onu siler. 2. sellstop açılır ve piyasaya çevrilir, durum çalışmasa da kapanır. Günlükteki bir sonraki giriş, orderclose işlevi için buy2, bilinmeyen bileti kapatma girişimidir. Kodu bellekten uyguluyorum çünkü iş yerinde yanlışlıklar olabilir. Sipariş bozma bloğu normaldir
Symb= Symbol ();                               
   Total= 0 ;                                     
   for ( int i= 1 ; i<= OrdersTotal (); i++)          
     {
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) 
        {                                       
         if ( OrderSymbol ()!=Symb) continue ;      
         if ( OrderType ()> 1 ) continue ;
         if ( OrderType <= 1 )                     
            {
             Total++;                               
             if (Total> 1 )                           
               {
                Alert ( "Несколько рыночных ордеров. Эксперт не работает." );
                return ;                             
               }
             Ticket= OrderTicket ();                  
             Tip   = OrderType ();                    
             Price = OrderOpenPrice ();               
             SL    = OrderStopLoss ();                
             TP    = OrderTakeProfit ();              
             Lot   = OrderLots ();                    
            }
        }

Kapanış bloğu da belirli bir soruyu gündeme getirmiyor gibi görünüyor, koşullar basitleştirilmiş bir soru gösterdi:

 while ( true )                                  
     {
       if (Tip== 0 && Cls_B== true )                
        {                                       
         Alert ( "Попытка закрыть Buy " ,Ticket);
         RefreshRates ();                        
         Ans= OrderClose (Ticket,Lot, Bid , 2 );      
         if (Ans== true )                         
           {
             Alert ( "Закрыт ордер Buy " ,Ticket);
             break ;                              
           }
         return ;                                
        }
 
       if (Tip== 1 && Cls_S== true )                
        {                                       
         Alert ( "Попытка закрыть Sell " ,Ticket);
         RefreshRates ();                        
         Ans= OrderClose (Ticket,Lot, Ask , 2 );      
         if (Ans== true )                         
           {
             Alert ( "Закрыт ордер Sell " ,Ticket);
             break ;                               // Выход из цикла закр
           }
         return ;                                 // Выход из start()
        }
       break ;                                     // Выход из while
     }

Çok minnettar olacağım.