[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 253

 
DDFedor >> :

kogda je budet MQL5?

Wenn nicht, fragen Sie uns. Nicht jeder liest gerne die Transliteration, also schränkt die Transliteration auch Ihre Möglichkeiten ein, Ihnen zu antworten.

Danke, DDFedor, und wenn ich etwas in Google finden musste, habe ich die Buchstaben des Textes auf Russisch appliziert.

 

helfen Sie mir bei der Einfärbung des Indikators, ich möchte, dass er grün ist, wenn der Wert steigt, und rot, wenn er sinkt

Hier ist der Code:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Green


int BarsCount = 10000;

//---- buffers
double buf_1[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
    SetIndexStyle(0,DRAW_HISTOGRAM);
    SetIndexBuffer(0, buf_1);
//    SetIndexStyle(1,DRAW_HISTOGRAM);
//    SetIndexBuffer(1, buf_2);
    //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
int i;
//----
   int limit = BarsCount;
    if ( limit > Bars)
        limit = Bars;
        
   for ( i = limit; 0 <= i; i--) {

        buf_1[ i] = High[ i]-Low[ i];
   
        
        
        }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

Ich möchte, dass ein schwebender Auftrag um 15:00 Uhr platziert wird, wenn es zu diesem Zeitpunkt keine offene Position gibt,

Ich schreibe das Folgende:

if (Stunde()=15 || Minute()=0)

double max_level=High[iHighest(NULL,0,MODE_HIGH,13,0)]; //Maximalpreis für die letzten 13 Balken festlegen
double min_level=Low[iLowest(NULL,0,MODE_LOW,13,0)]; //Mindestpreis für die letzten 13 Balken festlegen
int Dist_SL =60; // SL einstellen (pt)
int Dist_TP =60; // TP (pt) einstellen
//--------------------Цикл установки ордера BUY STOP---------------------------------------------------------------------
while(true) //Öffnen des Auftragszyklus.
{
int Min_Dist1=MarketInfo(Symbol(),MODE_STOPLEVEL); // Min_Dist.
double Price_B=max_level; // Geldkurs

//----------------Устанавливаем ордер на покупку---------------------------------------------------------------------------
if (NormalizeDouble(Price_B,Digits)< // Wenn weniger als erlaubt.
NormalizeDouble(Ask+Min_Dist1*Point,Digits))
{ // Nur für BuyStop!
Preis_B=Ask+Min_Dist1*Point; // näher geht es nicht mehr
Alert("Der angegebene Kaufkurs wurde geändert: Preis = ", Preis_B);
}
double SL_B=Preis_B - Dist_SL*Point; // Deklarierter SL-Kaufpreis
double TP_B=Preis_B + Dist_TP*Point; // Der angegebene TP-Kurs zum Kauf
Alert("Der Handelsauftrag wurde an den Server gesendet. Ich warte auf Antwort...");
int ticket1=OrderSend(Symbol(), OP_BUYSTOP, 0.1, Price_B, 0, SL_B, TP_B); //Kauforder setzen
if (ticket1>0) // Es hat funktioniert :)
{
Alert ("Kaufauftrag eröffnet ",ticket1);
break; // Beenden der Schleife
}

Ich muss etwas falsch schreiben. Können Sie mir sagen, wie ich eine Position zu einem bestimmten Zeitpunkt öffnen kann?

 

Nun, Punkt für Punkt:

1. Wenn der Tick bei null Minuten liegt, wird das Skript gestartet. Es ist besser, die Nullminute als Startminute festzulegen und dann ein Flag zu setzen, das verhindert, dass das Skript erneut startet. Aber im Prinzip ist das nicht kritisch.

2. Sie kontrollieren nur, wenn das Preisniveau unter dem zulässigen Wert liegt, und wenn es darüber liegt, lassen Sie es bleiben.

3. Sie verwenden die Normalisierung bei der Prüfung des Preises, aber nicht bei der Substitution, da es zu Fehlern kommen kann.

 
Roger >> :

Nun, Punkt für Punkt:

1. Wenn der Tick bei null Minuten liegt, wird das Skript gestartet. Es ist besser, die Nullminute als Startminute festzulegen und dann ein Flag zu setzen, das verhindert, dass das Skript erneut startet. Aber im Prinzip ist das nicht kritisch.

2. Sie kontrollieren nur, wenn das Preisniveau unter dem zulässigen Wert liegt, und wenn es darüber liegt, lassen Sie es bleiben.

3. Sie verwenden die Normalisierung bei der Überprüfung des Preises und nicht bei der Substitution, es kann zu Fehlern kommen.

Ich danke Ihnen für Ihre Antwort. Ich bin ein absoluter Anfänger in der Programmierung, ich habe gerade angefangen, die Hilfedatei zu studieren und beschlossen, meinen EA zu schreiben. Ich verstehe, dass der Rahmen.

wenn (Stunde()=15 || Minute()=0) überhaupt nicht korrekt ist, verursacht jedes Zeichen einen Fehler beim Kompilieren, bitte sagen Sie mir, wie man es richtig schreibt?

 
albon >> :

Ich möchte, dass ein schwebender Auftrag um 15:00 Uhr platziert wird, wenn es zu diesem Zeitpunkt keine offene Position gibt,


Ich muss etwas falsch schreiben. Können Sie mir sagen, wie ich eine Position zu einem bestimmten Zeitpunkt öffnen kann?

Suchen Sie im Forum, ich habe es mir von KimiV geliehen, dort gibt es eine Funktion, die den Betrieb zeitlich begrenzt

 
albon писал(а) >>

Vielen Dank für die Antwort. Ich bin ein absoluter Neuling in der Programmierung, habe gerade angefangen, die Hilfedatei zu studieren und sofort beschlossen, meinen EA zu schreiben. Ich verstehe, dass der Rahmen

wenn (Stunde()=15 || Minute()=0) überhaupt nicht korrekt ist, verursacht beim Kompilieren jedes Zeichen einen Fehler, bitte beraten Sie, wie man es richtig schreibt?

Ändern Sie es in

if (Stunde()==15 || Minute()==0)

PS Wenn Sie nichts wissen, warum sich die Mühe machen, schicken Sie es lieber jemand anderem.

 
dmmikl86 >> :

Helfen Sie mir bei der Einfärbung des Indikators, ich möchte, dass der Wert in grün nach oben und in rot nach unten geht.

Hier ist der Code:

Dies sollte mit zwei verschiedenfarbigen Puffern geschehen.

Steigt der Preis, wird der Wert dem einen Puffer zugeordnet, fällt er, dem anderen,

und der zweite wird im schwarzen Körper gehalten (z. B. SetIndexEmptyValue(0,0.0);)

0 wird beiden Puffern zugewiesen, bevor sie sich füllen, und danach verteilen Sie die Puffer an diejenigen, die Sie in die Bank bringen wollen, und an diejenigen, die Sie nicht belästigen wollen.

Vinin scheint einen solchen Indikator zu haben, durchsuchen Sie das Codebase-Profil.

 
Können Sie mir sagen, ob es möglich ist, ein kleines Bild in das Hauptfenster des Terminals einzufügen?
 
IlyaA >> :
Können Sie mir sagen, ob es möglich ist, ein kleines Bild in das Hauptfenster des Terminals einzufügen?

Noch nicht in 5 versprechen sie (zumindest mit Standardmitteln)