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

 
Artyom Trishkin :

ChartIndicatorAdd()

Teşekkürler. Yalnızca burada EA, doğrudan grafikte yazılmayan bir gösterge görüntüler. EA'nın kendisinin hesaplamalarının nasıl görüntüleneceği hakkında bir sorum var.

 
Andrey Sokolov :

Teşekkürler. Yalnızca burada EA, doğrudan grafikte yazılmayan bir gösterge görüntüler. Danışmanın kendisinin hesaplamalarının görüntüsünün nasıl görüntüleneceği hakkında bir sorum var.

OBJ_LABEL

ObjectSetString - verileri girin

ObjectGetString - veri al


Benim için bir örnek olarak




 
Andrey Sokolov :

Teşekkürler. Yalnızca burada EA, doğrudan grafikte yazılmayan bir gösterge görüntüler. EA'nın kendisinin hesaplamalarının nasıl görüntüleneceği hakkında bir sorum var.

Canvas'ı (CCanvas) alın ve çizin. ChartTimePriceToXY kullanarak zaman ve fiyatı grafik koordinatlarına dönüştürme.

 
MakarFX :

Hangi zaman diliminde?

M1

 

Selamlar! Böyle bir yapıda, SELECT_BY_POS'un aksine SELECT_BY_TICKET seçiminin neden çalışmadığını anlayamıyorum.

 void Ticket_Limits ( int magic ){


int _GetLastError = 0 , k = OrdersTotal ();
        Ticket_Total = 0 ;
        
// изменяем размеры массивов под текущее кол-во позиций
         // (если _OrdersTotal = 0, меняем размер массивов на 1)
         int temp_value = MathMax ( k, 1 );
         ArrayResize ( _Tacket,                   temp_value );
         ArrayResize ( _Type,                        temp_value );
         ArrayResize ( _OpenPrice,                temp_value );   
         // обнуляем массивы
         ArrayInitialize ( _Tacket,               0 );
         ArrayInitialize ( _Type,                 0 );
         ArrayInitialize ( _OpenPrice,     0 );
        
         for ( int z = k- 1 ;z>= 0 ; z -- )
        {

           Print ( "z =" ,z);
                 if (! OrderSelect ( z, SELECT_BY_POS ))
                {
                        _GetLastError = GetLastError ();
                         Print ( "OrderSelect( " , z, ", SELECT_BY_TICKET  ) - Error #" , _GetLastError );
                         continue ;
                }
                 if ( OrderMagicNumber() == magic && OrderSymbol() == Symbol () )
                {
                         // заполняем массивы
                        _Tacket               [Ticket_Total] = OrderTicket();
                        _Type                         [Ticket_Total] = OrderType();
                        _OpenPrice                      [Ticket_Total] = NormalizeDouble ( OrderOpenPrice(), _Digits );
                        Ticket_Total++;
                         Print ( "_Tacket === " ,_Tacket[z], " _Type === " ,_Type[z], " _OpenPrice === " ,_OpenPrice[z]);
                }
          
        }               
         // изменяем размеры массивов под кол-во позиций, принадлежащих эксперту
         // (если Ticket_Total = 0, меняем размер массивов на 1)
        temp_value = MathMax ( Ticket_Total, 1 );
         ArrayResize ( _Tacket,                   temp_value );
         ArrayResize ( _Type,                        temp_value );
         ArrayResize ( _OpenPrice,                temp_value );
} 
 
Selam beyler! Konuyu ele alıyorsam özür dilerim: yardım, MT4'te telefona atılan bir hindi nasıl yapılır, örneğin hareketli bir ortalama, m15 zaman diliminde aynı çiftte m5 zaman diliminde veya üzerinde görünmüyordu. başka herhangi bir TF.
 
MakarFX _
Teşekkürler. Ama soru bununla ilgili değil. Ve mümkünse nesneler olmamak için EA'nın dizilerden, bir şekilde gösterge arabelleklerinden verileri nasıl çektiği hakkında.
 
Andrey Sokolov :
ChartTimePriceToXY kullanarak bunları piksellere dönüştürün ve hepsi bu. Alınan koordinatlara göre en az noktalar, en az çizgiler, en azından diğer ilkelleri, en azından okları (Windings yazı tipi) çizin. CCanvas bunun için tüm yöntemlere sahiptir . Tam ekranda bir Canvas oluşturmak yeterlidir ve her şeyi çizebilirsiniz, tam hareket özgürlüğü. Ancak aynı zamanda, Canvas'ın OnChartEvent'te (id: CHARTEVENT_CHART_CHANGE) sürekli olarak yeniden çizilmesi gerekir. Genel olarak, önce CCanvas ile nasıl çalışacağınızı öğrenmeniz gerekir. Ancak programlama konusunda yeniyseniz ve tüm bunları öğrenemeyecek kadar tembelseniz, Freelance size yardımcı olacaktır.
 
Galim_V :

Selamlar! Böyle bir yapıda, SELECT_BY_POS'un aksine SELECT_BY_TICKET seçiminin neden çalışmadığını anlayamıyorum.

Çünkü SELECT_BY_TICKET bir siparişi biletine göre seçer . Ve sırayla seçiyorsunuz ( SELECT_BY_POS ). Biletlere göre siparişleri seçmek için biletleri dizinlere değil OrderSelect işlevine bildirin .

 
Mihail Matkovskij :

CCanvas ile her şeyi çizebilirsiniz. Zamanı (CopyTime kullanarak) ve dizi verilerini kopyalayın (böylece zaman dizisindeki hücre, veri dizinizdeki hücreyle tam olarak eşleşir) . ChartTimePriceToXY kullanarak bunları piksellere dönüştürün ve hepsi bu. Alınan koordinatlara göre en az noktalar, en az çizgiler, en azından diğer ilkelleri, en azından okları (Windings yazı tipi) çizin. CCanvas bunun için tüm yöntemlere sahiptir . Tam ekranda bir Canvas oluşturmak yeterlidir ve her şeyi çizebilirsiniz, tam hareket özgürlüğü. Ancak aynı zamanda, Canvas'ın OnChartEvent'te (id: CHARTEVENT_CHART_CHANGE) sürekli olarak yeniden çizilmesi gerekir. Genel olarak, önce CCanvas ile nasıl çalışacağınızı öğrenmeniz gerekir. Ancak programlama konusunda yeniyseniz ve tüm bunları öğrenemeyecek kadar tembelseniz, Freelance size yardımcı olacaktır.

Teşekkürler