Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 235

 

Ve tabii ki bir sonraki alımı açarken, tüm pozisyonlar için hemen transfer ediyoruz ( StopLoss ortalama fiyatımız + 50 puana eşittir) .

Burada bazen bir alçaktır ve son pozisyonu almaz. 4 tayda 3 pozisyon açıldı. Üç StopLoss taşındı ve dördüncüsü üzerine bahse girmeyi unuttu.

DedZone, fikre göre korunmalıdır:

StopLevel = (MarketInfo( Symbol (), MODE_STOPLEVEL)* Point );       // текущий уровень стопов
FreezeLevel = (MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point );         // уровень заморозки
DedZone = MathMax (StopLevel,FreezeLevel);               // Зона запрета розмещения ордеров

DedZone hesaplaması, Expert Advisor'ın başlatılmasındadır.

 
Limita :

Ve tabii ki bir sonraki alımı açarken, tüm pozisyonlar için hemen transfer ediyoruz ( StopLoss ortalama fiyatımız + 50 puana eşittir) .

Burada bazen bir alçaktır ve son pozisyonu almaz. 4 tayda 3 pozisyon açıldı. Üç StopLoss taşındı ve dördüncüsü üzerine bahse girmeyi unuttu.

DedZone, fikre göre korunmalıdır:

DedZone hesaplaması, Expert Advisor'ın başlatılmasındadır.

StopLevel = (MarketInfo( Symbol (), MODE_STOPLEVEL)* Point );       // текущий уровень стопов
FreezeLevel = (MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point );         // уровень заморозки
DedZone = MathMax (StopLevel,FreezeLevel);               // Зона запрета розмещения ордеров

Hem o hem de o sıfıra eşit olduğunda, o zaman ne olacak? Alpari'de bu durumda spread * 2 kullanılır.

Ve o satırların mantığıyla ilgili soruma cevap vermedin.

 
ALXIMIKS :

numaralandırmanın böyle yapılması daha iyidir (birisi siparişleri değiştirirken veya silerken numaralandırma seçeneğinizle ilgili sorunları olduğunu yazdı):

Ve neden yağ-tereyağı??? (bir şey bırak)


Teşekkür ederim!

Görünüşe göre bir uzmanla konuşuyoruz :)

 
artmedia70 :

Ve o satırların mantığıyla ilgili soruma cevap vermedin.


artmedia70 :

Danışmanın davranışının tüm mantığı, koşullara bağlı olarak yürütülen veya uygulanmayan mantıksal bloklara ayrılabilir.

Kendiniz için, böyle bir bloğun küme parantezleri içine alınmış birkaç satır olabileceğini anlayın:

if ( koşul ) {şart doğruysa, bu parantez içindeki blok yürütülür}

Aksi halde {yukarıdaki koşul doğru değilse, bu parantez içindeki blok yürütülür}

Koşuldan sonra kaşlı ayraç yoksa, koşul doğru olduğunda yürütülen blok, koşulun hemen ardından gelen tek satır olacaktır:

if ( koşul ) Bu satır doğru

Else Bu satırı çalıştırır

Örneklerimde If is if, Else is else

burada çekilmiş

 
artmedia70 :

Hem o hem de o sıfıra eşit olduğunda, o zaman ne olacak? Alpari'de bu durumda spread * 2 kullanılır.

Ve o satırların mantığıyla ilgili soruma cevap vermedin.



Alpari ile ilgili bilgiler için teşekkür ederiz.

Çizgilerin Mantığı ile ilgili olarak, ALXIMIKS yanıtladı.

Kendimden ekleyeceğim ki, bu durumda değişiklik ancak tüm koşullar doğruysa gerçekleşir. En az biri düşerse, devam ederiz.

 
Limita :


Alpari ile ilgili bilgiler için teşekkür ederiz.

Çizgilerin Mantığı ile ilgili olarak, ALXIMIKS yanıtladı.

Kendimden ekleyeceğim ki, bu durumda değişiklik ancak tüm koşullar doğruysa gerçekleşir. En az biri düşerse, devam ederiz.

Nedense bana bir keresinde birine yazılmış kendi sözlerimi gösterdi.

Ben de mantıkla ilgili bir sorunun cevabını sizden almak istedim. Bu kod bloğunda birbiri ardına if () öğelerine sahipsiniz. Ve bu, eğer birinci koşul doğruysa, ikincisi de doğru olacak, ikincisi doğruysa, üçüncüsü de doğru olacak, vb., ama ... Birinci koşul doğru değilse, o zaman ikincisi doğru olmayacak, ancak üçüncüsü tekrar kontrol edilecek.

Belki böyle bir şey, ama yine de ihtiyacınız var:

 bool ProfitManagement() {
   double StopLossBuy = BuyAP+Profit* Point ;                             //Вычисляем StopLoss
   double TakeProfitBuy = BuyAP + Profit* Point ;                   //Вычисляем цену TakeProfit
   double StopLossSell = SellAP-Profit* Point ;
   double TakeProfitSell = SellAP - Profit* Point ;
   RefreshRates();
   for ( int good = 0 ; good < OrdersTotal (); good ++) {
       if ( OrderSelect (good, SELECT_BY_POS)) {            
         if (OrderMagicNumber()!=MagicNumber)   continue ;
         if (OrderSymbol()!= Symbol ())           continue ;
//-------------------------Order Buy-----------------------------------------------------  
         if (OrderType()==OP_BUY) {                             
             if (BuyAP < Bid) { 
               if ( MathAbs (OrderStopLoss() - StopLossBuy) >= Tick) { // Профит не равен нужному
                   if (Bid-StopLossBuy>DedZone) {                     // Уровень достаточно удален от цены
                     if (WaitForTradeContext()) {                     // Свободен ли торговый поток?
                         if (!OrderModify(OrderTicket(), 0 , NP(StopLossBuy), 0 , 0 , Lime)) {
                           Alert ( Symbol (), " Хрень со стопами! " ,   GetLastError ());
                           return ( false );
                           }
                        }
                     }
                  }
               }
            }
//-------------------------Order Buy-----------------------------------------------------  
         if (OrderType()==OP_SELL) {                             
             // вся та же хрень...
            }
//-------------------------Order Buy-----------------------------------------------------  
         }
      }
   return ( true );
}

Bunlar sadece benim tahminlerim, çünkü sizde her şeyin hangi mantıkla tasarlandığını bilmiyorum ve bazı değişkenlerin ve fonksiyonların ne yaptığını ve içerdiğini / döndürdüğünü bilmiyorum.

 
artmedia70 :

1) Nedense bana bir keresinde birine yazılmış kendi sözlerimi gösterdi.

2) Mantıkla ilgili sorunun cevabını sizden almak istedim. Bu kod bloğunda birbiri ardına if () öğelerine sahipsiniz. Ve bu, eğer birinci koşul doğruysa, ikincisi de doğru olacak, ikincisi doğruysa, üçüncüsü de doğru olacak, vb., ama ... Birinci koşul doğru değilse, o zaman ikincisi doğru olmayacak, ancak üçüncüsü tekrar kontrol edilecek.

1) Sadece sizin için değil, herkes içindi.

2) Birkaç gün önce bu açıklamayı yapmıştınız, ama ben bu bilgiyi tekrar kontrol etmeyi unuttum.

Şimdi basit bir komut dosyası yaptım:

 int start(){
 if ( 3 > 3 )
 if ( 5 > 3 )
 if ( 5 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAAAA" );}
} 

Ve yanıldığın ortaya çıktı: UYARI OLMAYACAK !!!

 
ALXIMIKS :

1) Sadece sizin için değil, herkes içindi.

2) Birkaç gün önce bu açıklamayı yapmıştınız, ama ben bu bilgiyi tekrar kontrol etmeyi unuttum.

Şimdi basit bir komut dosyası yaptım:

Ve yanıldığın ortaya çıktı: UYARI OLMAYACAK !!!

 int start(){
 if ( 3 > 3 )
 if ( 5 > 3 )
 if ( 5 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAAAA" );}
} 

Tamam katılıyorum. Bu durumda, küme parantezleri olmadan iç içe koşullarda neyin ve nasıl yürütüleceğini daha önce yazarak heyecanlandım. Bu durumda haklısın. Neden biliyor musun?

Ve kodunuzda başka bir yürütme gerçekleştirmeye çalışın.

 
artmedia70 :

Tamam katılıyorum. Bu durumda, küme parantezleri olmadan iç içe koşullarda neyin ve nasıl yürütüleceğini daha önce yazarak heyecanlandım. Bu durumda haklısın. Neden biliyor musun?

Ve kodunuzda başka bir yürütme gerçekleştirmeye çalışın.


 int start(){
 int a= 0 ;
 if ( 3 > 3 )
 if ( 5 > 3 )
 if ( 5 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAAAA" ); a= 5 ;}
 else Alert ( "a=" , a);
}

ne de bu komut dosyasından herhangi bir Uyarı. Else, " if ( 5 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAA" ); a= 5 ;} " koşulunu ifade eder.

Onaylar:

 int start(){
 int a= 0 ;
 if ( 5 > 3 )
 if ( 5 > 3 )
 if ( 3 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAAAA" ); a= 5 ;}
 else Alert ( "a=" , a);
}

Uyarımız var: "а=0".

Sonuç, koşul hatası işlemenin yalnızca son koşul için, belirli bir dizi koşul numaralandırılırken küme parantezleri "{" kullanılmadığı takdirde mümkün olmasıdır.

 
ALXIMIKS :

ne de bu komut dosyasından herhangi bir Uyarı. Else, " if ( 5 > 3 ){ Alert ( "AAAAAAAAAAAAAAAAAAAAA" ); a= 5 ;} " koşulunu ifade eder.

Onaylar:

Uyarımız var: "а=0".

Sonuç, koşul hatası işlemenin yalnızca son koşul için, belirli bir dizi koşul numaralandırılırken kaşlı ayraçlar "{" kullanılmadığı takdirde mümkün olmasıdır.


Yani, mantıksal dalları düzenlemek için parantezlere ihtiyaç vardır. Onlar olmadan, ilk koşul esastır. Eğer doğru değilse, diğer şartlar yerine getirilmeyecektir.

Burada anlamaya çalışın:

 if (a>b)
     if (b>c) 
         Alert ( " условие if (a>b && b>c) выполнено " );
if (d>e) 
     if (e>f) 
         Alert ( " условие if (d>e && e>f) выполнено" );

Ve sonra, başka ne anlama geldiğini anlayın:

 if (a>b)
     if (b>c) 
         Alert ( " условие if (a>b && b>c) выполнено " );
else if (d>e) 
     if (e>f) 
         Alert ( " условие if (d>e && e>f) выполнено" );