[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 123

 
Bu konuda, yardımın için teşekkürler , OrdersTotal() yerine OrdersHistoryTotal() koydum . kazanıldı.
 

Mql4'ü benden daha iyi anlayanlar lütfen yardım etsin. 3 soru var.

1. İlk olarak, çift sabitle. Tanınmış iMa, semboller, Hareketli Ortalama var / Soru şu: Değerlerin yanlış görüntülenmesi

Misal:

 extern string   MA1= "" ;
extern string   MA2= "" ;
extern string   MA3= "" ;
string com;


double MA1 = iMA ( NULL , PERIOD_M15 , 9 , 0 , 0 , 0 );
double MA2 = iMA ( NULL , PERIOD_M15 , 15 , 0 , 0 , 0 );
double MA3 = iMA ( NULL , PERIOD_M15 , 21 , 0 , 0 , 0 );

if (MA1>MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 ) com= "значение1" ;
if (MA1<MA2 && MA1==MA2 && MA1<MA3 && MA3!=MA3 ) com= "значение2" ;

Yani değer her zaman = değer1 olacaktır. Kod inatla anlamayı reddediyor != (eşit değil)

2. Soru /Açılış Arama Kapanış/

Programdan ne istiyorum ama çalışmıyor.

1. Durumu kontrol etme (doğru ; yanlış)

2. Böyle bir emir varsa açmıyoruz, yoksa açıyoruz. Koşullu SiparişYorum()

3. Kontrol edin Bir X veya Y olayı meydana geldiyse , . X-(örneğin, başka bir iMA1>iMA2 sinyali, Y-başka bir iMA2>iMA3 sinyali)

Ben bu şekilde yapıyorum ama olmuyor.

 if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)
{
   for ( int i= 1 ;i<= OrdersTotal (); i++)       
       {
         if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_TRADES)== true )
           {
             if (OrderComment()== "значение1" ) return ( 0 );
             else
            {
             OrderSend ( Symbol (),OP_SELL, LOT, NormalizeDouble (Bid, Digits ), 2 , 0 , 0 ,com,Magic, 0 ,Red);
            }
           }
       } 
}

Ve nasıl kapatacağımı nereye ekleyeceğimi anlamıyorum.

3. shift (int shift) hakkında soru

İkinci iMA grubunda nispi akım çubuğunu geri kaydırıyorum 3) Ne için, böylece yukarıda açıklanan sinyal göründüğünde her çubukta tekrarlanan emirler açılmaz. Ama nedense hareket etmiyor.

 double MA1 = iMA ( NULL , PERIOD_M15 , 9 , 0 , 0 , 0 );
double MA2 = iMA ( NULL , PERIOD_M15 , 15 , 0 , 0 , 0 );
double MA3 = iMA ( NULL , PERIOD_M15 , 21 , 0 , 0 , 0 );

double MA4 = iMA ( NULL , PERIOD_M15 , 9 , 0 , 0 , 3 );
double MA5 = iMA ( NULL , PERIOD_M15 , 15 , 0 , 0 , 3 );
double MA6 = iMA ( NULL , PERIOD_M15 , 21 , 0 , 0 , 3 );

Kimden daha fazla bilgiye yardım edin. Şimdiden teşekkür ederim. Veya İnternet'te kodun benzer bir uygulamasının olduğu bir bağlantı.

 
dertop :

Mql4'ü benden daha iyi anlayanlar lütfen yardım etsin. 3 soru var.

1. İlk olarak, çift sabitle.

2. Ve nasıl kapatılacağını, nereye ekleyeceğimi anlamıyorum.

3. shift (int shift) hakkında soru

1. https://www.mql5.com/ru/articles/1561

2. if (kapanış koşulları) OrderClose(...)

3. Bu yer değiştirmenin tam olarak ne olduğunu ve kimi yerinden ettiğini görün
 
ilunga :

1. https://www.mql5.com/ru/articles/1561

2. if (kapanış koşulları) OrderClose(...)

3. Bu yer değiştirmenin tam olarak ne olduğunu ve kimi yerinden ettiğini görün


Bu kadar hızlı yanıt için çok teşekkürler.

1. Evet anladım orayı kazacağız.(Teşekkürler)

2. if (kapanış koşulları) OrderClose(...)'a göre (bu olmadan anlaşılır, yer yok) Nuh'un kafası karıştı eğer, ne için, nerede ve neden ....

Yanlışsa düzeltin....

 if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)                                         // если true то заходим в тело цикла...
{
   for ( int i= 1 ;i<= OrdersTotal (); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
         if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_TRADES)== true )
           {
             if (OrderComment()== "значение1" ) return ( 0 );                                             // если орден найден то ничего не делаем
             else
            {
             OrderSend ( Symbol (),OP_SELL, LOT, NormalizeDouble (Bid, Digits ), 2 , 0 , 0 ,com,Magic, 0 ,Red);   // а вот тут проблемы кто за чем идёт и куда вставить условие закрытие отдельно за телом всего условия (ma1;ma2 и тд), или там где OrderSelect()
            }
           }
       } 
}

3. Gösterge tamponundan alınan değerin indeksi (geçerli çubuğa göre belirtilen dönem sayısı kadar önce kayma). mql4 yardımından

 
dertop :


Bu kadar hızlı yanıt için çok teşekkürler.

2. if (kapanış koşulları) OrderClose(...)'a göre (bu olmadan anlaşılır, yer yok) Nuh'un kafası karıştı eğer, ne için, nerede ve neden ....

Yanlışsa düzeltin....


 if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)                                         // если true то заходим в тело цикла...
{
   for ( int i= 1 ;i<= OrdersTotal (); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
         if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_TRADES)== true )
           {
             if (OrderComment()== "значение1" ) return ( 0 );                                             // если орден найден то ничего не делаем
             else
            {
             OrderSend ( Symbol (),OP_SELL, LOT, NormalizeDouble (Bid, Digits ), 2 , 0 , 0 ,com,Magic, 0 ,Red);   // а вот тут пока написано следующее: для каждого из ордеров у которого мы сюда зашли мы поставим еще один ордер
            }
           }
       } 
}
 
ilunga :

Üzgünüm, koşulda zaten verilmişse neden eşitsizliği kontrol edin! Bu, koşulların okunmasını ve yürütülmesini yavaşlatır!

 if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3) //MA1!=MA2 && и && MA2!=MA3 не нужны, т.к. в предыдущих сравнениях
                                                           //равенство ухе исключено! Так что нужно так:
if (MA1>MA2 && MA1<MA3 && MA2>MA3)
 
borilunad :

Üzgünüm, koşulda zaten verilmişse neden eşitsizliği kontrol edin! Bu, koşulların okunmasını ve yürütülmesini yavaşlatır!


Burada bir tuhaflık var

 if (MA1>MA2 && MA1<MA3 && MA2>MA3)

MA1>MA2 ve MA2>MA3 ve ardından MA1<MA3

Ayrıca, yeterli

 if (MA1>MA2 && MA2>MA3)
 
borilunad :

Üzgünüm, koşulda zaten verilmişse neden eşitsizliği kontrol edin! Bu, koşulların okunmasını ve yürütülmesini yavaşlatır!


Evet kusura bakmayın buraya pek bir şey eklemedim, başta buna hiç önem vermedim. Bu hesaplamalar 4 MA için yapılmıştır; Ve MA1>MA2 ve şu anda MA3=MA4 olduğu durumlar vardır (bu nedenle, bir kontrol gereklidir çünkü strateji bu şekilde oluşturulur)

 if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2<MA3 && MA2!=MA3 && MA3<MA4 && MA3!=MA4)                                         // если true то заходим в тело цикла...
{
   for ( int i= 1 ;i<= OrdersTotal (); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
         if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_TRADES)== true )
           {
             if (OrderComment()== "значение1" ) return ( 0 );                                             // если орден найден то ничего не делаем
                 else
                {
                 if (OrderComment()!= "значение1" )                                                         // если такого ордера нету
                   {
                   OrderSend ( Symbol (),OP_SELL, LOT, NormalizeDouble (Bid, Digits ), 2 , 0 , 0 ,com,Magic, 0 ,Red);   // тогда открываем
                   }
                }
         if (MA1<MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 && MA3>MA4 && MA3!=MA4)                           // если true новый сигнал
             {
            OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Ask, Digits ), 3 , CLR_NONE );               // тогда закрываем
             }

           }
       } 
}

Bunun gibi bir şey?????

 
Vinin :


Burada bir tuhaflık var

MA1>MA2 ve MA2>MA3 ve ardından MA1<MA3


Evet kusura bakmayın kafam karıştı foruma ilk yazdığımda. Önce kopyala-yapıştır sonra kalemle karar verip kafam karıştı...ama yukarıdaki örnekte herşey doğru..

MA1>MA2 ve MA1<MA3 ve MA3<MA4

 

Tünaydın.

Lütfen göstergeyi değiştirmeme yardım edin.

Standart bir Pivot var, bu yüzden seviyeleri standart formüllere göre hesaplayan bir indikatöre sahip olmak istiyorum ama kendim girdiğim H, L, C verilerine göre.

Cevap verecek herkese teşekkürler.