[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 18

 
Figar0 >> :

Kodun tamamını yayınlayın, burada henüz stop-loss kokusu yok ...

Bu, kayıpları durdurmakla ilgili değil, ancak fiyat MA'ya dokunur dokunmaz pozisyonun kapatılacağıyla ilgili.

 
Novice писал(а) >>

Bu, kayıpları durdurmakla ilgili değil, ancak fiyat MA'ya dokunur dokunmaz pozisyonun kapatılacağıyla ilgili.

Öyle olsun, zararı durdur hakkında yazdınız ...) Neyse, kod olmadan neden çalışmadığını anlamak mümkün değil, ortaya konan parça hiç bilgilendirici değil.

 
Figar0 >> :

Öyle olsun, zararı durdur hakkında yazdınız ...) Neyse, kod olmadan neden çalışmadığını anlamak mümkün değil, ortaya konan parça hiç bilgilendirici değil.

Çok yanlış söylemiş olmalıyım, üzgünüm, MA'ların kendilerinin bir kayıp durdurma işlevi görmesi gerektiğini kastettim, yani

Acemi >> :

... fiyat MA'ya dokunur dokunmaz pozisyon kapatıldı


Ve kod son derece ilkel:


         Ticket = OrderTicket ( ) ;                  
         Tip   = OrderType ( ) ;                    
         Lot   = OrderLots ( ) ;                    

    MA2C = iMA ( NULL , 0 , Period_MA2 , 0 , MODE_SMA , PRICE_CLOSE , 0 ) ; //Есть две MA с разным периодом.
    MA3C = iMA ( NULL , 0 , Period_MA3 , 0 , MODE_SMA , PRICE_CLOSE , 0 ) ; //И вот с такими параметрами.
     
     //Так же есть условия, при которых по идее должны срабатывать 
     // функции закрытия ордеров.
     
     RefreshRates ( ) ;                   
     if ( Tip = = 0 & & Bid = = MA2C )          //Обозначение типа ордера и условия закрытия
     {
      CloseBuy = true ;                                // Закрыть Buy
     }
     RefreshRates ( ) ;
     if ( Tip = = 0 & & Bid = = MA3C )
     {
      CloseBuy = true ;                                // Закрыть Buy
     }
     RefreshRates ( ) ;
     if ( Tip = = 1 & & Ask = = MA2C )
     {
      CloseSell = true ;                                // Закрыть Sell
     }
     RefreshRates ( ) ;
     if ( Tip = = 1 & & Ask = = MA3C )
     {
      CloseSell = true ;                                // Закрыть Sell
     }

         // Закрытие ордеров
   while ( true )                                    // Цикл закрытия орд.
     {
       if ( Tip = = 0 & & CloseBuy = = true )                  // Открыт ордер Buy..
         {                                        //и есть критерий закр
         Alert ( "Попытка закрыть Buy " , Ticket , ". Ожидание ответа.." ) ;
         RefreshRates ( ) ;                          // Обновление данных
         ALERT = OrderClose ( Ticket , Lot , Bid , 3 , Blue ) ;        // Закрытие Buy
         if ( ALERT = = true )                          // Получилось :)
           {
             Alert ( "Закрыт ордер Buy " , Ticket ) ;
             break ;                                // Выход из цикла закр
           }
         if ( Fun_Error ( GetLastError ( ) ) = = 1 )        // Обработка ошибок
             continue ;                            // Повторная попытка
         return ;                                  // Выход из start()
         }
         if ( Tip = = 1 & & CloseSell = = true )                  // Открыт ордер Sell..
         {                                        // и есть критерий закр
         Alert ( "Попытка закрыть Sell " , Ticket , ". Ожидание ответа.." ) ;
         RefreshRates ( ) ;                          // Обновление данных
         ALERT = OrderClose ( Ticket , Lot , Ask , 3 , Red ) ;        // Закрытие Sell
         if ( ALERT = = true )                          // Получилось :)
           {
             Alert ( "Закрыт ордер Sell " , Ticket ) ;
             break ;                                // Выход из цикла закр
           }
         if ( Fun_Error ( GetLastError ( ) ) = = 1 )        // Обработка ошибок
             continue ;                            // Повторная попытка
         return ;                                  // Выход из start()
         }
       break ;                                      // Выход из while
     }

Şimdiden 4 koşulun 2 ile değiştirilebileceğini düşünüyorum.


     RefreshRates ( ) ;
     if ( Tip = = 0 & & Bid = = MA2C | | Tip = = 0 & & Bid = = MA3C )
     {
      CloseBuy = true ;                                // Критерий закр. Buy
     }
     RefreshRates ( ) ;
     if ( Tip = = 1 & & Ask = = MA2C | | Tip = = 1 & & Ask = = MA3C )
     {
      CloseSell = true ;                                // Критерий закр. Sell
     }
 
     RefreshRates ( ) ;
     if ( Tip = = 0 & & ( Bid = = MA2C   | | Bid = = MA3C ) )
     {
      CloseBuy = true ;                                // Критерий закр. Buy
     }
     RefreshRates ( ) ;
     if ( Tip = = 1 & & ( Ask = = MA2C | |    Ask = = MA3C ) )
     {
      CloseSell = true ;                                // Критерий закр. Sell
     }

O zaman öyledir) Her halükarda çılgın bir parça olsa da, arabalar Teklif fiyatlarına inşa edilir ve onları şöyle karşılaştırır ... Şey, bilmiyorum.

Kodunuzda bir şey var, OrderSelect'i göremiyorum?

 

Ders kitabından standarttır:


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 )                      // Попался отложенный
           {
             Alert ( "Обнаружен отложенный ордер. Эксперт не работает." ) ;
             return ;                              // Выход из start()
           }
         Total + + ;                                // Счётчик рыночн. орд
         if ( Total > 1 )                            // Не более одного орд
           {
             Alert ( "Несколько рыночных ордеров. Эксперт не работает." ) ;
             return ;                              // Выход из start()
           }
         Ticket = OrderTicket ( ) ;                    // Номер выбранн. орд.
         Tip   = OrderType ( ) ;                      // Тип выбранного орд.
         Lot   = OrderLots ( ) ;                      // Количество лотов
         }

//И далее как выше...
Prensipte bunun mümkün olup olmadığını anlamak benim için önemlidir, çünkü görselleştirme modunda test ederken siparişler MA'da kapatılmaz.
 
Novice писал(а) >>

Prensipte bunun mümkün olup olmadığını anlamak benim için önemlidir, çünkü görselleştirme modunda test ederken siparişler MA'da kapatılmaz.

Prensip olarak, mümkündür. Sisteminizde tek seferde sadece sipariş mi var?

Alış/Satış fiyatlarını ve MA değerlerini eşitlik için karşılaştırırken normalleştirmeye çalışın, herkesin buna ihtiyacı var...

Her kod parçası kenelerle seçilmelidir, orada bir kâse var mı?) Neden hemen bir uzmanı seçmiyorsunuz. Uzun zaman önce düzeltirdim.

 
Figar0 >> :

Prensip olarak, mümkündür. Sisteminizde tek seferde sadece sipariş mi var?

Alış/Satış fiyatlarını ve MA değerlerini eşitlik için karşılaştırırken normalleştirmeye çalışın , herkesin buna ihtiyacı var...

Her kod parçası kenelerle seçilmelidir, orada bir kâse var mı?) Neden hemen bir uzmanı seçmiyorsunuz. Uzun zaman önce düzeltirdim.

Ondan sonra başım döndü...

Hayır) Kâse'den önce, başka bir galaksiden önce olduğu gibi, yalnızca TS'yi uygulamaya ve iyileştirmeye çalışır.


Gönderideki tüm kodu göndermek mümkün değildi, ekliyorum

Dosyalar:
g.ei.vn.gl..mq4  12 kb
 
Novice писал(а) >>

Ondan sonra başım dönmeye başladı...

Hayır) Kâse'den önce, başka bir galaksiden önce olduğu gibi, yalnızca TS'yi uygulamaya ve iyileştirmeye çalışır.

Gönderideki tüm kodu göndermek mümkün değildi, ekliyorum

Eh, tabii ki orada çılgın) Ama bir şekilde basılı olarak çalışıyor:

Partideki artışı kaldıran tek şey. Siparişlerin kapanmadığını mı söyledin?

 
Tam olarak fiyatın onlara dokunduğu anda MA'yı kapatmıyorlar. MA2C ve MA3C'de. Deli hakkında, evet, henüz bitirmedim.


Gibi...?

Figar0 >> :

...eşitlik için karşılaştırırken Alış/Satış fiyatlarını ve MA değerlerini normalleştirin...

Tam olarak nasıl normalleştireceğimi tam olarak anlamıyorum... NormalizeDouble(Sor, Rakamlar) ?

 

Sorun şu ki, hala MA fiyatına ulaşıldığında siparişleri hemen kapanmaya zorlamayı düşünüyorum.


Derleme sırasında normalleştirmeden sonra, bir nedenden dolayı, kodun hiç etkilenmediği bölümünde bir hata oluştu.