Uzmanlar için soru - sayfa 11

 
Urain >> :

Acronis True Image, Yedekleme oluşturmak ve geri yüklemek için bir programdır. Yedek sürücü C.

Rise from Back Up ve sistem yaratıldığı zamanki gibidir.

Kalkış süresi 4 dk.

Sana da teşekkürler.

 
rid >> :

Sana da teşekkürler.

canım kurtuldum ama burada bana bir soruda yardımcı olamazsın) https://forum.mql4.com/en/15972/page145

 
MQLBankir >> :
Güzel gün!
Sadece ilk ay için danışman yazarım.
Basit olanları anladım: bir sinyal var - bir pozisyon açın. Ya birden fazla sinyale ihtiyacım olursa?
Örneğin.
göstergeden 1. sinyal
2. sinyal daha sonra gelir, ancak 1. koşul zaten YANLIŞ. Programın her tıklandığında yürütüldüğünü anlıyorum, ancak ilk koşulun (sinyal) hala geçerli olduğunu ve iptal edilmediğini hatırlamam gerekiyor.
Bir dosyaya yazabileceğini düşündüm. Ama henüz bunda pek iyi değilim.
Belki bir işlev veya başka bir şey aracılığıyla başka bir çıkış yolu vardır?
söyle lütfen

Bu konuda gerçekten iyi bir uzman değilim.

Ancak, 1. sinyalin yürütülmesinden sonra bayrağı "asarsanız", asmasına izin verileceği varsayımı vardır.

1. sinyal kendini çoktan tüketmiş olsa bile!

Ardından ikinci sinyal sorunsuz bir şekilde açılması için bir sinyal verecektir.

Soruyu doğru anladıysam...

 
Infinity >> :

canım kurtuldum ama burada bana bir soruda yardımcı olamazsın) https://forum.mql4.com/en/15972/page145

Kapatmayı mı soruyorsun? Buraya bak

'Kapanış pozisyonları. Gösterge sinyaliyle.'

//---------------------------

Ben, zamanı gelince bu konuya daldım.

Ve gönderdiğiniz kodda - bunu anlamak zor ve kapanış bölümünü hiç göremiyorum.

Örnek bir kapatma bloğu:

 //********* Закрытие позиций ****************************************
if ( AutoClose ) { //если выключатель закрытия включен 
//----переменные для закрытия позиций ----
double Stochast_0 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 0 ) ;
double Stochast_1 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 1 ) ;
//----------------------------------------------------------------------
  for ( int v = 0 ; v < OrdersTotal ( ) ; v + + )                             {       
      if ( OrderSelect ( v , SELECT_BY_POS , MODE_TRADES ) )               {           
        if ( OrderSymbol ( ) = = Symbol ( ) & & OrderMagicNumber ( ) = = MagicNum )   { 
//-----------------------------------------------------                  
if ( OrderType ( ) = = OP_BUY ) { 
      if ( Stochast_1 > 75 & & Stochast_0 < 75 )     {
           OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , Green ) ; // закрываем позицию
                 // return ( 0 ) ; // выходим
                }       
     }  
 //--------------------------------------------------------
if ( OrderType ( ) = = OP_SELL ) { 
      if ( Stochast_1 < 25 & & Stochast_0 > 25 )    {
                 OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , Green ) ; // закрываем позицию
                // return ( 0 ) ; // выходим
                }       
     }  
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 
rid >> :

Bu konuda gerçekten iyi bir uzman değilim.

Ancak, 1. sinyalin yürütülmesinden sonra bayrağı "asarsanız", asmasına izin verileceği varsayımı vardır.

1. sinyal kendini çoktan tüketmiş olsa bile!

Ardından ikinci sinyal sorunsuz bir şekilde açılması için bir sinyal verecektir.

Soruyu doğru anladıysam...



peki, bu, ilk sinyalden sonra ikinci sinyalin başlangıcını hesaba katarsak, ..... ve sadece bu şekilde, ancak ... 2. sinyali açma için kontrol ettikten sonra, 1. sinyal zaten yanlıştan yanlışa dönebilir. doğru, o zaman 2. sinyalin hesaplanmasını tamamlamak ve ilk sinyale geçmek gerekli olacaktır!

 
rid >> :

Kapatmayı mı soruyorsun? Buraya bak

'Kapanış pozisyonları. Gösterge sinyaliyle.'

//---------------------------

Ben, zamanı gelince bu konuya daldım.

Ve gönderdiğiniz kodda - bunu anlamak zor ve kapanış bölümünü hiç göremiyorum.

iyi, orada değil,.... Açık bir siparişin numarasını hiçbir şekilde alamıyorum. sıraya göre kapatmak için, sürekli bir hata gösterecektir, .. numara hala diğer işlevler aracılığıyla bulunsa bile.

 

Yukarıya bak. Oraya bir örnek ekledim.

Yalnızca MagicNum yerine mn'nizi eklersiniz

Harici parametrelere ekle

extern bool AutoClose = true;

 
rid >> :

Yalnızca MagicNum yerine mn'nizi eklersiniz

Harici parametrelere ekle

extern bool AutoClose = true;

evet evet teşekkürler anladım :)

 
Infinity >> :

iyi, orada değil,.... Açık bir siparişin numarasını hiçbir şekilde alamıyorum. sıraya göre kapatmak için, sürekli bir hata gösterecektir, .. numara hala diğer işlevler aracılığıyla bulunsa bile.

Pozisyona göre bir emir seçmeye çalışın: fonksiyon, işlem emirleri listesinde emrin t-pozisyonunun biletini döndürür.

 int Select_POS ( int t )
{ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if ( OrderSelect ( t , SELECT_BY_POS , MODE_TRADES ) ) TIC [ t ] = OrderTicket ( ) ;
else TIC [ t ] = - 1 ;
return ( TIC [ t ] ) ;
} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
t = OrdersTotal() ve işlenen her siparişte azalma.
 
Urain >> :

Pozisyona göre bir emir seçmeye çalışın: fonksiyon, işlem emirleri listesinde emrin t-pozisyonunun biletini döndürür.

t = OrdersTotal() ve işlenen her siparişte azalma.


Yardım için teşekkürler! bu yüzden muhtemelen çok işe yarayacak! Kesinlikle kontrol edeceğim!

Kapatma kodu çıktı,... şimdi her şey çalışıyor, sorun gerçekten açık siparişin tanımıyla ilgiliydi. Hepinize tekrar teşekkürler!