[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5.

 

(Vorheriger Teil hier)


Hallo, Könnten Sie eine Funktion in mql4 vorschlagen, die unter mehreren offenen Kaufpositionen, beginnend mit dem niedrigsten Preis, die angegebene Anzahl von Lots (Summe) zählt und den Preis ausgibt, unter dem diese Anzahl von Lots liegt. Bei den Aufträgen handelt es sich um Marktaufträge. Und dasselbe, aber für den Verkauf.

Zur Verdeutlichung: alle Aufträge mit unterschiedlicher Anzahl von Losen. Die Funktion summiert die Aufträge in aufsteigender Reihenfolge des OrderOpenPrice, sofern die Bedingung "Summe der Lots <=sum" erfüllt ist.

 
pechenuga:

(Der vorherige Teil hier)


Hallo, Könnten Sie eine Funktion in mql4 vorschlagen, die unter mehreren offenen Kaufpositionen, beginnend mit dem niedrigsten Preis, die angegebene Anzahl von Lots (Summe) zählt und den Preis ausgibt, unter dem diese Anzahl von Lots liegt. Bei den Aufträgen handelt es sich um Marktaufträge. Und dasselbe, aber für den Verkauf.

Zur Verdeutlichung: alle Aufträge mit unterschiedlicher Anzahl von Losen. Die Funktion summiert die Aufträge in aufsteigender Reihenfolge des OrderOpenPrice, sofern die Bedingung "Summe der Lots <=sum" korrekt ist.


Was soll diese Funktion zurückgeben: die Gesamtzahl der Lose, die Differenz zwischen der Gesamtzahl und der angegebenen Anzahl der Lose oder false-true, je nachdem, ob der tatsächliche Wert höher oder niedriger als der angegebene ist?

Um welchen Preis handelt es sich genau, um den Eröffnungskurs des letzten Auftrags, wenn das Volumen größer oder gleich dem angegebenen ist?

 

das war's...mein Topf kocht....

Wenn Sie die MEDIUM-Prüfung aus diesem Code entfernen, werden die Linien deutlich gezeichnet.

Wenn Sie es wieder so einstellen, wie es ist, zeichnet der EA überhaupt nichts!

wer hat einen Fehler gesehen? oder der Grund? bitte sagen Sie mir.

der Compiler zeigt keine Fehler an

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);

if ( Hour()>=10 && Hour()<20) 
   {  
      if 
        ( Ma_1>Ma_2)         
              
 { SetVLine(Blue, "", 0, 0, 1);} 

}
 
Bitte beraten Sie mich, welcher Expert Advisor am besten geeignet ist, um den Handel zu visualisieren. Auch hier wäre es wünschenswert, verschiedene TFs gleichzeitig verwenden zu können. Ich möchte beide gleichzeitig verwenden. Vielen Dank!
 
lottamer:

das war's...mein Topf kocht....

Wenn Sie die MEDIUM-Prüfung aus diesem Code entfernen, werden die Linien deutlich gezeichnet.

Wenn Sie es wieder so einstellen, wie es ist, zeichnet der EA überhaupt nichts!

wer hat einen Fehler gesehen? oder der Grund? bitte sagen Sie mir.

der Compiler zeigt keine Fehler an


SetVLine() anzeigen;
 
rigonich:

SetVLine() anzeigen;

//==========================
//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 02.07.2008 |
//| Beschreibung : Einstellung des Objekts OBJ_VLINE vertikale Linie |
//+----------------------------------------------------------------------------+
//| Parameter: |
//| cl - Linienfarbe |
//| nm - Name ("" - Zeitpunkt der aktuellen Balkenöffnung) |
//| t1 - Zeit (0 - Eröffnungszeit des aktuellen Balkens) |
//| st - Linienart (0 - einfache Linie) |
//| wd - Linienbreite (1 - Standard) |
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Zeit[0], 0);
if (t1<=0) t1=Zeit[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0;)
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
 
rigonich:


Soll die Funktion die Gesamtzahl der Lose, die Differenz zwischen der Gesamtzahl und der angegebenen Anzahl der Lose oder false-true zurückgeben, je nachdem, ob der tatsächliche Wert höher oder niedriger als der angegebene Wert ist?

Genauer gesagt, von welchem Preis sprechen wir, dem Eröffnungskurs des letzten Auftrags, wenn das Volumen größer oder gleich einem bestimmten Volumen ist?

Die Funktion sollte den Preis zurückgeben, unter dem sich die Aufträge mit der erforderlichen Anzahl von Lots befinden. Das heißt, sobald die Anzahl der Lose größer als "Summe" ist, gibt die Funktion den Preis der letzten Bestellung zurück
 
lottamer:

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);
if(TimeHour(iTime(Symbol(),0,0))>10&&TimeHour(iTime(Symbol(),0,0))<20)
   {
   if(Ma_1>Ma_2)SetVLine(Blue, "", 0, 0, 1);
}  
 
rigonich:



Ihr Code funktioniert nicht!!! :)))))))))))))))) werden keine Grenzen gezogen.

und die Zeit hat damit nichts zu tun. Die Uhrzeit ist korrekt, ich habe sie beim Drucken ausgegeben...

Und wenn man anstelle des Vergleichs mit den Durchschnitten einen Vergleich mit der Stochastik anstellt, ist alles klar gezeichnet.

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);


if ( Hour()>=10 && Hour()<20)  
// if ( Ma_1>Ma_2)          // убрал средние
//    {
                      
         if (Stoch_1>Stoch_2)
 { SetVLine(Blue, "", 0, 0, 1);}   
 

es sieht so aus, als obRigonich auch kocht :))))

Um sicher zu gehen, habe ich alle Komponenten aus einem anderen funktionierenden EA kopiert...

NICHT GEZOGEN!

Ziehen" in "Kaufen und Verkaufen" geändert.

ES WIRD NICHT FUNKTIONIEREN!

es sieht aus wie MAGICAL BLEEP!

Die ausgedruckten Durchschnittswerte zeigen beide 134, während ihre Periode um den Faktor 20 (!) abweicht!

 
lottamer:

es sieht so aus, als obRigonich auch kocht :))))

Um sicher zu gehen, habe ich alle Komponenten aus einem anderen funktionierenden EA kopiert...

NICHT GEZOGEN!

Ziehen" in "Kaufen und Verkaufen" geändert.

ES WIRD NICHT FUNKTIONIEREN!

es sieht aus wie MAGICAL BLEEP!


Und wo überprüfen Sie das, auf der Demo oder im Testgerät?