Nützliche Funktionen von KimIV - Seite 6

 
Lukyanov:
Das könnte sich als nützlich erweisen. :-)
Es macht mir nichts aus, wenn Sie es aussprechen :-) :-)
 
Hallo
Können Sie mir sagen, ob es ein "Büro" gibt, das einen eigenen Server zum Testen von EAs bereitstellt. Das heißt, ich lade meinen EA auf ihren Server hoch, wo er im "Online"-Modus auf einem Demokonto getestet wird.
 
KimIV:

Warnung! In meinem Beitrag vom 12.03.2008 07:24 habe ich den Anhang SetOrder.mq4 geändert

Ich habe Ihren Code ausprobiert, aber er hat nicht funktioniert (vielleicht sind meine Hände falsch :( ... ). Beim Kompilieren treten viele Fehler auf.
Nachricht" - die Funktion ist nicht definiert - was ist das?
break" - "break" oder "continue" wird nur innerhalb eines Zyklus verwendet - was ist falsch an Schleifen?
'GetNameTF' - Funktion ist nicht definiert - wie kann sie definiert werden?
...etc. :(
Ich kann es immer noch nicht herausfinden. Bitte helfen Sie mir, wenn Sie nicht in Schwierigkeiten sind.

 
sasa999 писал (а):
Nachricht' - Funktion ist nicht definiert - was ist das?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Вывод сообщения в коммент и в журнал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - текст сообщения                                                     |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);
} 
sasa999 wrote:
'break' - 'break' oder 'continue' wird nur innerhalb einiger Schleifen verwendet - was ist falsch an Schleifen?

Ignorieren Sie die Pause vorerst. Sortieren Sie zunächst die Funktionsbeschreibungen aus.

sasa999 schrieb:
'GetNameTF' - Funktion ist nicht definiert - wie kann man sie definieren?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование таймфрейма                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeFrame - таймфрейм (количество секунд)      (0 - текущий ТФ)         |
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
  if (TimeFrame==0) TimeFrame=Period();
  switch (TimeFrame) {
    case PERIOD_M1:  return("M1");
    case PERIOD_M5:  return("M5");
    case PERIOD_M15: return("M15");
    case PERIOD_M30: return("M30");
    case PERIOD_H1:  return("H1");
    case PERIOD_H4:  return("H4");
    case PERIOD_D1:  return("Daily");
    case PERIOD_W1:  return("Weekly");
    case PERIOD_MN1: return("Monthly");
    default:         return("UnknownPeriod");
  }
}

Suchen Sie nach der Funktion ExistOrders in diesem Thema. Ich habe sie bereits veröffentlicht. ErrorDescription wird mit der Compiler-Richtlinie eingefügt:

#include <stdlib.mqh>

Okay, es gibt noch die Funktion GetNameOP:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование торговой операции                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    op - идентификатор торговой операции                                    |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
  switch (op) {
    case OP_BUY      : return("Buy");
    case OP_SELL     : return("Sell");
    case OP_BUYLIMIT : return("Buy Limit");
    case OP_SELLLIMIT: return("Sell Limit");
    case OP_BUYSTOP  : return("Buy Stop");
    case OP_SELLSTOP : return("Sell Stop");
    default          : return("Unknown Operation");
  }
}
 
KimIV:
sasa999 schrieb (a):
'Message' - Funktion ist nicht definiert - was ist das?
sasa999 schrieb (a):
'break' - 'break' oder 'continue' wird nur innerhalb eines Zyklus verwendet - was ist falsch an Zyklen?

Ignorieren Sie die "Pause " vorerst. Sortieren Sie zunächst die Funktionsbeschreibungen aus.

sasa999 schrieb:
'GetNameTF' - Funktion ist nicht definiert - wie kann man sie definieren?

Suchen Sie nach der Funktion ExistOrders in diesem Thema. Ich habe sie bereits veröffentlicht. ErrorDescription wird mit der Compiler-Richtlinie eingefügt:

#include <stdlib.mqh>

Okay, es bleibt noch die Funktion GetNameOP übrig:


Ich habe das Gefühl, ich sollte die Bibliotheken (beide) bekannt machen und etwas Öffentlichkeitsarbeit leisten. Die Bibliotheken werden nicht aufgegeben.
 
Danke - sehr hilfreich, aber es gibt wieder andere Probleme... :(
jetzt zeigen alle diese Funktionen - die Funktion "хххххххх" ist nicht referenziert und wird aus der exp-Datei entfernt
vielleicht habe ich sie an die falsche Stelle gesetzt... :( Ich hoffe, Sie können helfen.
..es ist schwer für einen Anfänger in MQL4 :)
 
Vinin:
Ich habe das Gefühl, dass ich die Bibliotheken (beide) herausgeben und etwas Erklärungsarbeit leisten muss. Ich werde die Bibliotheken nicht aufgeben.

Ich werde es wahrscheinlich posten... aber nicht, bevor wir alle Funktionen durchgespielt haben... was soll ich sonst hier? Wenn Sie es in die Codebase stellen, würden die Leute es herunterladen und vergessen. Ich bin auch so :-) Ich habe einen Haufen Code von anderen Leuten, der unangetastet herumliegt. Und wenn man die Möglichkeit hat, nachzuforschen und Fragen zu stellen, ist das eine ganz andere Sache.

Meine Dateien mit dem Präfix test_ werden kompiliert und laufen einwandfrei.

 
sasa999:
Danke - sehr hilfreich, aber wieder andere Probleme... :(
jetzt werden alle diese Funktionen angezeigt - Funktion "xxxxxxxxxx" ist nicht referenziert und wird aus der exp-Datei entfernt
Vielleicht habe ich sie an die falsche Stelle gesetzt... :( Ich hoffe, Sie können helfen.
... Ich habe eine harte Zeit mit MQL4 :)
Sehen Sie sich an, wie alles in test_SetOrder.mq4 zusammengesetzt ist
 



Wenn ich es richtig verstehe, wird OrderSend durch OrderModify ersetzt

kann sowohl bei der Änderung eines Auftrags?
als auch beim Abschluss... ??

...aber wie können wir diese Funktionen in einer Funktion kombinieren?

Außerdem...

if (mn<0 || OrderMagicNumber()==mn)

Warum mn<0? Kann Magic nicht negativ sein?

 
sasa999 писал (а):
wenn ich es richtig verstehe, durch Ersetzen von OrderSend mit OrderModify

zur Änderung eines Auftrags verwendet werden kann?
... sowie zum Abschluss ... ??

aber wie kann man dies in einer Funktion zusammenfassen, damit es sich nicht wiederholt?

Später wird es eine Funktion geben, um die

sasa999 schrieb (a):
mehr...
if (mn<0 || OrderMagicNumber()==mn)
Warum mn<0? Kann Magic nicht negativ sein?
Es kann... In meinen EAs verwende ich jedoch nur positive Magie im Format JJJJMMTT, z. B. 20080323. Dies ist das Datum, an dem der EA entwickelt wurde.