Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 145

 
waroder:


So wie ich es verstehe (ich hoffe, richtig:)), möchteZolotai Daten aus zwei Schleifenanweisungen in Textdateien schreiben. Von jedem in eine separate Datei. Dann möchte er die Daten aus diesen Dateien in Arrays laden. Dann müssen diese beiden Arrays zu einem Array zusammengefügt werden, damit die Daten von zwei Operatoren nicht vermischt und von jedem Balken miteinander korreliert werden.

wie diese))))


 
waroder:


wie ich es verstanden habe (hoffentlich richtig:)) Zolotai möchte die Daten aus zwei Schleifenanweisungen in Textdateien schreiben. Von jedem einzelnen in eine separate Datei. Dann möchte er die Daten aus diesen Dateien in Arrays laden. Dann sollten diese beiden Arrays zu einem Array zusammengefügt werden, damit die Daten von zwei Operatoren nicht vermischt und durch jeden Balken miteinander korreliert werden.

wie diese))))

Warum müssen wir die Daten in einem mehrdimensionalen Array zusammenführen? Die erste Dimension ist durch die Zeit (Balken) indiziert - der Rest sind Array-Daten. Und sortieren Sie alle Daten in der ersten Dimension, wie Sie wollen.
 

Leute, ich brauche Hilfe, der Code unten wird nur der zweite Teil ausgeführt, wenn sellstop gesetzt werden sollte, und buystop aus irgendeinem Grund nicht gesetzt ist, obwohl alle Bedingungen erfüllt sind, kann ich nicht einmal sehen, was falsch ist))

wenn (Auftragssumme()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

wenn (Auftragsart()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (Auftragsart()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

 

Da Sie sicher wissen, dass es sich bei Auftrag Nr. 2 um einen Verkaufsauftrag handelt, müssen Sie nur noch den Preis normalisieren, den Stop und die Take.

Und beobachten Sie die EA-Protokolle.

 

Hallo, können Sie mich bitte beraten - ich bin auf der Suche nach einer Eule oder einer Schrift:

Es gibt eine Auftragsebene, es gibt einen Stop und 3 Takeprofits, es ist notwendig, dass, wenn ein bestimmtes Niveau erreicht wird, zum Beispiel die erste Tr-Order um einen bestimmten Teil geschlossen wird (von mir selbst festgelegt) und der verbleibende Teil wird auf ein Niveau übertragen, das ich auch selbst festgelegt habe..:

Beispiel

Auftrag bei 1,5800 Stop 1,5750 1 Position - 1,5850 2 Punkte - 1,5900 3 Punkte - 1,5950, so dass, wenn der Auftrag erreicht 1,5850 lassen Sie uns davon ausgehen, 40% der Partie geschlossen ist, der Rest bei 1,5800 (dh in bu) auf 2 Punkte 20% und der Rest übertragen wird, um 1,5850 und 3 Punkte sind vollständig geschlossen.

Das Wichtigste ist, dass ich die Werte je nach Situation selbst ändern kann.

 
zaqwsx123:

Leute, ich brauche Hilfe, der Code unten wird nur der zweite Teil ausgeführt, wenn sellstop gesetzt werden sollte, und buystop aus irgendeinem Grund nicht gesetzt ist, obwohl alle Bedingungen erfüllt sind, kann ich nicht einmal sehen, was falsch ist))

wenn (Auftragssumme()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

wenn (Auftragsart()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (Auftragsart()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

Ticket #2 sowie #4 können nur im Tester erscheinen. Das ist die Utopie auf der Real/Demo. Wenn Sie einen Auftrag auf einem Ticket auswählen, sollten Sie sich zunächst vergewissern, dass der Auftrag überhaupt ausgewählt ist, und dann den Zeitpunkt seines Abschlusses überprüfen. Wenn er == 0 ist, bedeutet dies, dass der Auftrag aus der Liste der Marktaufträge ausgewählt wurde. Wenn der Zeitpunkt des Auftragsabschlusses > 0 ist, bedeutet dies, dass der Auftrag bereits abgeschlossen wurde und aus der Liste der abgeschlossenen Aufträge ausgewählt ist. Wenn eine Handelsanfrage an den Server gesendet wird, müssen erstens alle Preise auf dem neuesten Stand sein (die aktuellsten; dazu müssen die Preise mittels MarketInfo() oder RefreshRates() vor dem Senden der Anfrage ermittelt werden), und zweitens müssen alle Preise auf die exakten Ziffern normalisiert werden
 
Villcommen:

Hallo, können Sie mich bitte beraten - ich bin auf der Suche nach einer Eule oder einer Schrift:

Es gibt eine Auftragsebene, es gibt einen Stop und 3 Takeprofits, es ist notwendig, dass, wenn ein bestimmtes Niveau erreicht wird, zum Beispiel die erste Tr-Order um einen bestimmten Teil geschlossen wird (von mir selbst festgelegt) und der verbleibende Teil wird auf ein Niveau übertragen, das ich auch selbst festgelegt habe..:

Beispiel

Auftrag bei 1,5800 Stop 1,5750 1 Position - 1,5850 2 Punkte - 1,5900 3 Punkte - 1,5950, so dass, wenn der Auftrag erreicht 1,5850 lassen Sie uns davon ausgehen, 40% der Partie geschlossen ist, der Rest bei 1,5800 (dh in bu) auf 2 Punkte 20% und der Rest übertragen wird, um 1,5850 und 3 Punkte sind vollständig geschlossen.

Das Wichtigste ist, dass ich die Werte je nach Situation selbst ändern kann.

Haben Sie in der Catbase nachgesehen?
 

Leute, erzählt mir was über diesen Scheiß!!! Wenn ich einen neuen Indikator erstelle, habe ich immer ein Problem mit der Ausgabe des Puffers auf dem Chart. Ich scheine alles richtig geschrieben zu haben, aber die Werte werden nicht angezeigt.... Ich bin schon erschöpft....

#property copyright "nikelodeon"
#property link      ""
extern int k=5;
extern int k1=8;

#property indicator_chart_window
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
int init()
  {
SetIndexBuffer(0,Buffer2);         // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2,Red);// Линия
SetIndexBuffer(1,Buffer1);// Назначение массива буферу 
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2,Blue);// Линия
SetIndexStyle (2,DRAW_ARROW,STYLE_SOLID,1,Red);
SetIndexArrow (2,159);// Стиль линии 
SetIndexBuffer(2,Buffer3);
SetIndexEmptyValue(2,0.0);// Назначение массива буферу
SetIndexStyle (3,DRAW_ARROW,STYLE_SOLID,1,Blue);
SetIndexArrow (3,159);// Стиль линии 
SetIndexBuffer(3,Buffer4);// Назначение массива буферу 
SetIndexEmptyValue(3,0.0);
SetIndexStyle (4,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (4,159);// Стиль линии 
SetIndexBuffer(4,Buffer5);// Назначение массива буферу 
SetIndexEmptyValue(4,0.0);
SetIndexStyle (5,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (5,251);// Стиль линии 
SetIndexBuffer(5,Buffer6);// Назначение массива буферу 
SetIndexEmptyValue(5,0.0);
SetIndexStyle (6,DRAW_ARROW,STYLE_SOLID,2,Red);
SetIndexArrow (6,241);// Вход Бай
SetIndexBuffer(6,Buffer7);// Назначение массива буферу 
SetIndexEmptyValue(6,0.0);
SetIndexStyle (7,DRAW_ARROW,STYLE_SOLID,2,Blue);
SetIndexArrow (7,242);// Вход сел 
SetIndexBuffer(7,Buffer8);// Назначение массива буферу 
SetIndexEmptyValue(7,0.0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int i,b,limit;
limit=Bars;
if (b!=Bars){
b=Bars;
      for(i=limit; i>=0; i--){
      
      if ((setupUP(i,4,5)==1)) {Buffer5[i+1]=Low[i+1];} else Buffer5[i+1]=0;
      if ((setupDOWN(i,4,5)==1)){Buffer5[i+1]=High[i+1];} else Buffer5[i+1]=0;
      
      
      

      }
      
  Buffer5[i+1]=Low[i+1];    
}
 
   return(0);
  }
//+------------------------------------------------------------------+


int setupUP (int i, int k, int k1)
{
int num=0;
int setUP=0;
for (i=0; i>=100; i++){
 if((Close[i+1]<Close[i+k])) {num=num+1;}
 }
 
 if (num>=k1) {
               setUP=1;
               return (setUP);     
            }
return (0);
}

int setupDOWN (int i, int k, int k1)
{
int num=0;
int setUP=0;
 if((Close[i+1]>Close[i+k])) {num=num+1;}
 if (num>k1) {
               setUP=1;
               return (setUP);     
            }

}
Was muss ich tun, um den fünften Puffer auszugeben?
 
zaqwsx123:

Leute, ich brauche Hilfe, der Code unten wird nur der zweite Teil ausgeführt, wenn sellstop gesetzt werden sollte, und buystop aus irgendeinem Grund nicht gesetzt ist, obwohl alle Bedingungen erfüllt sind, kann ich nicht einmal sehen, was falsch ist))

wenn (Auftragssumme()==2)

{

...

Um den Code richtig in das Forum einzufügen, klicken Sie auf SRC

Wir sollten eigentlich if verwenden, um die Reihenfolge auszuwählen

if (OrderSelect(2,SELECT_BY_TICKET))
{
  //--- действие
 
Nun, es gibt keine Profis in meiner Frage????