Nützliche Funktionen von KimIV - Seite 60

 

Liebe Kim, vielen Dank für deine Arbeit, die Funktionen, die du geschrieben hast, machen mir das Leben leichter.

Haben Sie eine Funktion in Ihrem Arsenal, die den Gesamtverlust aller aufeinanderfolgenden Verlustgeschäfte ausgibt? Angenommen, die letzten drei Geschäfte wurden mit Verlust abgeschlossen, dann möchte ich den Gesamtverlust in der Einzahlungswährung wissen. Zur Verdeutlichung - genau die letzten aufeinanderfolgenden Verlustgeschäfte.

Ich werde für Hilfe dankbar sein, denn ich denke, dass auch andere diese Funktion benötigen.

 

KimIV

Ich habe versucht, Ihre Funktionen in den Expert Advisor einzubauen. Der Compiler schreibt folgenden Mist: Die Funktion "ClosePositions" wird nicht referenziert und wird aus der exp-Datei entfernt

Die Funktion "ExistPositions" wird nicht referenziert und wird aus der exp-Datei entfernt

Die Funktion "ManagePositions" wird nicht referenziert und wird aus der exp-Datei entfernt ...........................

Was könnte das Problem sein?




 
WroC писал(а) >>
Der Compiler schreibt: Die Funktion "ClosePositions" wird nicht referenziert und wird aus der exp-Datei entfernt

Was könnte der Fehler sein?

Das ist kein Fehler. Es handelt sich um eine Warnung, dass die Funktion nicht verwendet wird und es daher keinen Sinn hat, ihren Code zu kompilieren.

 

Igor!

Gibt es irgendwelche Entwicklungen oder nur Gedanken zu Zeitfilterfunktionen?

Zum Beispiel: für den aktuellen Monat, Tag, Woche...

oder: vorheriger Monat, Tag, Woche, Quartal...

*

Im Idealfall würde es so aussehen:

// FuncStPeriod(int Per, int Val)
// Где:
// Per = 0-день, 1-неделя, и т.д...
// Val = 0-текущие, 1-прошедший

// пример использования для выбора ордеров за период
if(FuncStPeriod(1, 0)) ...

Tut mir leid, aber ich kann sehen, dass es nicht funktioniert...

Oder vielleicht habe ich das falsche Filtermodell gewählt...

Ich kann nicht mehr weitermachen... im wahrsten Sinne des Wortes... :)))

 

Du, Vasili, bist nicht politisch korrekt! Der Eingang ist angezeigt, aber wo ist der Ausgang?

 

Ich weiß aus dem Bauch heraus, dass 0,5+0,5 ein Liter sind!

aber ich kann das Problem nicht lösen... (с) )))

*

Ich wäre sehr dankbar für Bestellbeispiele aus der Geschichte nach ihrem Zeitplan.

*

Und das sind:

// FuncStPeriod(int Per, int Val)
// Wobei:
// Per = 0-Tag, 1-Woche, usw..
// Val = 0-aktuell, 1-vorher


// Anwendungsbeispiel für die Auswahl von Aufträgen für einen Zeitraum
if(FuncStPeriod(1, 0)) ...
*

Ich habe es falsch geschrieben, genauer gesagt, ohne Erklärung...

Die markierten Parameter sind lediglich Parameter, die die Funktion haben kann.

Im Folgenden finden Sie ein Beispiel für die Verwendung dieser Funktion...

WENN DER ZEITPUNKT DER BESTELLUNGEN AUCH (in) den FILTER-Zeitraum fällt

...

 

Vasiliy, du sprichst wieder über den Input. Was wollen Sie am Ausgang und in welcher Form?

 

Ahhhh...

Richtig, äh... genau da liegt mein logischer Fehler...

Die Funktion gibt THAT zurück, zum Beispiel die Zahl 123456

Was es für den C- und PO-Filter braucht, ist...

*

Im Allgemeinen handelt es sich dabei um den gleichen Filter wie bei der Kontohistorie in MT4.

Wahrscheinlich wird die Liste z. B. durch einen Zyklus gebildet:

for( ...

if(Wert1 > OrderCloseTime() > Wert2)

...

*

Diese Funktion muss einen String (?)-Wert zurückgeben, der in den if()-Filter eingesetzt wird

for( ...

if(FuncStPeriod(1, 0))

...

*

So ein Mist. In der Beschreibung ist es kompliziert...

Ich habe mich geirrt, und Sie sitzen in der Klemme.

:(

 

Nun, Sie haben es fast selbst geschafft! Sie brauchen keinen Filter. Bereiten Sie einfach zwei Datumswerte vor, zum Beispiel dt1 und dt2. Organisieren Sie einen Zyklus von abgeschlossenen Geschäften. Wählen Sie die Aufträge nach dem Selektor aus und überprüfen Sie deren Endzeit:

if (OrderCloseTime()> dt1 && OrderCloseTime()< dt2) {
  // что-то делаете с выбранным ордером
}
 

Igor" Ich verstehe das...

So habe ich angefangen, es zu erarbeiten.

*

Die Aufgabe besteht jedoch darin, dieselben dt1 und dt2 mit den richtigen Werten "aufzufüllen"!

Zum Beispiel, Quartal, aktuell. Die Funktion sollte in etwa so aussehen:

OrderCloseTime()>"01.10.2008" && OrderCloseTime()<"04.12.2008"

Nehmen wir den heutigen Tag als Startdatum.

*

Ich sehe das Ende der Funktion FuncStPeriod(int Per, int Val) wie folgt:

FuncStPeriod(int Per, int Val)
{
string fsp;

//...
fsp="OrderCloseTime()>"+"dt1+" && OrderCloseTime()<"+dt2;
return(fsp);
}

***

Zum Beispiel ein "Rechner" für die Anzahl der Monate im Verhältnis zum aktuellen Monat:

int KM()
{
int kolm;
kolm=(TimeLocal()-StrToTime("2007.10.01"))/2592000;
return( kolm-1);
} 

aber dieser vereinfachte Ansatz hat seine Tücken,

was sich darin äußert, dass es möglich ist, eine falsche Identifizierung

zu Beginn der folgenden Monate...