Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1581

 
Artyom Trishkin:

ChartIndicatorAdd()

Ich danke Ihnen. Nur hier zeigt der EA den Indikator an, der sich nicht direkt im Chart befindet. Ich habe eine Frage dazu, wie man die Berechnungen des EA selbst anzeigen kann.

 
Andrey Sokolov:

Ich danke Ihnen. Nur hier zeigt der EA den Indikator nicht direkt im Chart an. Ich habe eine Frage, wie man die Berechnungen des EA selbst anzeigen kann.

OBJ_LABEL

ObjectSetString - Eingabe von Daten

ObjectGetString - Daten abrufen


Ich habe zum Beispiel




 
Andrey Sokolov:

Ich danke Ihnen. Nur hier zeigt der EA den Indikator nicht direkt im Chart an. Ich habe eine Frage, wie man die Berechnungen des EA selbst anzeigen kann.

Nehmen Sie eine Leinwand (CCanvas) und zeichnen Sie. Übersetzung von Zeit und Preis in Chart-Koordinaten mit ChartTimePriceToXY.

 
MakarFX:

In welchem Zeitrahmen?

М1

 

Guten Tag, ich verstehe nicht, warum die Auswahl SELECT_BY_TICKET in diesem Entwurf nicht funktioniert, im Gegensatz zu SELECT_BY_POS.

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 );
} 
 
Hallo Jungs, ich entschuldige mich, wenn ich in die falsche Richtung: Können Sie mir helfen, wie man einen Indikator auf dem Telefon in MT4, wie mooving zu Zeitrahmen m15, war nicht sichtbar auf dieses Paar auf dem Zeitrahmen von m5, oder jede andere TF.
 
MakarFX, Mihail Matkovskij
Vielen Dank. Aber meine Frage bezieht sich nicht darauf. Es geht darum, wie man Daten aus Arrays ziehen kann, z.B. aus Indikatorpuffern, wenn das möglich ist.
 
Andrey Sokolov:
ChartTimePriceToXY in Pixel um, und schon sind Sie fertig. Zeichnen Sie entweder Punkte, Linien oder andere Primitive, oder zeigen Sie Pfeile (Schriftart Windings) auf der Grundlage der erhaltenen Koordinaten an. CCanvasverfügt über alle Methoden dafür. Erstellen Sie einfach eine Leinwand, die sich über den gesamten Bildschirm erstreckt, und Sie können nach Belieben zeichnen. Aber gleichzeitig müssen Sie Kanvas in OnChartEvent(id: CHARTEVENT_CHART_CHANGE) ständig neu zeichnen. Alles in allem müssen Sie zunächst lernen, wie man mit CCanvas arbeitet. Aber wenn Sie neu im Programmieren sind und zu faul sind, alles zu lernen, dann ist Freelance Ihre Hilfe.
 
Galim_V:

Ich kann nicht verstehen, warum in diesem Entwurf die Auswahl SELECT_BY_TICKET im Gegensatz zu SELECT_BY_POS nicht funktioniert.

DennSELECT_BY_TICKET wählt die Bestellung nach ihrem Ticket aus. Und Sie wählen sie der Reihe nach aus (SELECT_BY_POS).Um Bestellungen nach Ticket auszuwählen, melden Sie die Tickets an die OrderSelect-Funktion, nicht die Indizes.

 
Mihail Matkovskij:

Mit CCanvas können Sie alles zeichnen, was Sie wollen. Kopieren Sie die Zeit(mit CopyTime) und die Array-Daten (so dass die Zelle im Zeit-Array eindeutig mit der Zelle in Ihrem Daten-Array übereinstimmt). Wandeln Sie sie mit ChartTimePriceToXY in Pixel um, und schon sind Sie fertig. Zeichnen Sie entweder Punkte, Linien oder andere Primitive, oder zeigen Sie Pfeile (Schriftart Windings) auf der Grundlage der erhaltenen Koordinaten an. CCanvasverfügt über alle Methoden dafür. Erstellen Sie einfach eine Leinwand, die sich über den gesamten Bildschirm erstreckt, und Sie können nach Belieben zeichnen. Gleichzeitig muss aber die Leinwand im OnChartEvent(id: CHARTEVENT_CHART_CHANGE) ständig neu gezeichnet werden. Alles in allem müssen Sie zunächst lernen, wie man mit CCanvas arbeitet. Aber wenn Sie neu im Programmieren sind und zu faul sind, alles zu lernen, dann ist Freelance Ihre Hilfe.

danke

Grund der Beschwerde: