[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 454

 
smart:


Woher weiß ich, welche Indikatoren in der Vorlage enthalten sind? Ich habe eine alte Vorlage installiert, aber es werden nicht alle Indikatoren angezeigt. Ich habe die Namen der in der Vorlage enthaltenen Indikatoren vergessen. Ich danke Ihnen!


Öffnen Sie den Ordner \templates\, suchen Sie Ihre Vorlage, öffnen Sie sie in Notepad, suchen Sie nach dem <Windows>-Tag und sehen Sie nach, welche Indikatoren mit welchen Parametern gepackt sind.
 
tol64:

demlin20.06.2011 22:02

Hallo zusammen!

Ich habe eine Frage, ich kann das Programm nicht dazu bringen, den Gewinn des Auftrags in Pips zu bestimmen. Kann mir jemand helfen?

Probieren Sie alle Bestellungen in einer Schleife aus.

For(i = 0; i < OrderHistoryTotal(); i++)

Mit OrderSelect() wählen Sie die gewünschte Datei nach bestimmten Kriterien aus. Dann fragen Sie nach OrderProfit(). Dies ist der Nettogewinn in Geld. Der Punktwert ist ungefähr wie folgt:

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

Prüfen Sie vorsichtshalber nach)))

Danke, ich werde es versuchen.
 

Schreiben und lesen Sie Informationen aus dem Bestellkommentar. BestellungKommentar().

Wenn ich eine Order eröffne, trage ich den Saldo und die Stop-Loss-Stufe in den Kommentar ein. Wenn der Auftrag geöffnet wird, sehe ich mir das Protokoll an. Alles ist genau.




Der Saldo beträgt 10000,00. Stop Loss 1,67740. Die Gesamtzahl der Zeichen beträgt 15.
Dann wähle ich mit Hilfe von String-Funktionen die gewünschten Zeichen aus und schreibe sie in eine CSV-Datei. Aber ich stand vor einem solchen Problem. Wenn ein Stop-Loss ausgelöst wurde, werden diese Zeichen [sl] an das Ende des Kommentars angehängt.


Und ich habe 19 Ziffern, nicht 15. Es geht darum, dass ich die Anzahl der Ziffern des aktuellen Saldos und die Anzahl der Ziffern des Preises prüfe, bevor ich einen Kommentar abgebe. Diese werden Variablen zugewiesen, anhand derer ich dann bestimme, wie viele und welche Ziffern ich benötige. Aber das [sl] macht mir schwer zu schaffen. Wenn der Preis 7 Ziffern hat, wird in der Datei 740 und nicht 1,67740 gespeichert. Ich weiß nicht, wie ich dieses Problem lösen kann). Bitte helfen Sie mir.
 
Am einfachsten ist es, gleich das Richtige in den Kommentar zu schreiben. Das heißt, Sie setzen Trennzeichen zwischen die Daten. Dann spielt die Länge der Zeichenkette keine Rolle, Sie ziehen einfach die Teilzeichenkette zwischen den Begrenzungszeichen heraus.
 
granit77:
Am einfachsten ist es, wenn Sie es gleich richtig in den Kommentar schreiben. Das heißt, es werden Trennzeichen zwischen die Daten gesetzt. Dann spielt die Länge der Zeichenkette keine Rolle, ziehen Sie einfach die Teilzeichenkette zwischen den Begrenzungszeichen.


Vorhin wurde mir diese einfache Variante angeboten:

string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // nach rechts abgeschnitten

Es war eine einfache Variante, aber auch ich hatte einige Schwierigkeiten damit, konnte das Problem aber lösen. )

Warum werden die [sl]-Zeichen nicht hinzugefügt, wenn man alles auf einmal richtig schreibt? Kann ich ein kleines Beispiel mit Teilstring-Extraktion aus dem Bestellkommentar haben, wenn Sie nichts dagegen haben?

 
tol64:


Diese einfache Möglichkeit wurde mir vorhin angeboten:

Die Option ist einfach, aber ich hatte auch Schwierigkeiten damit, habe mich dann aber entschieden. )

Warum werden die [sl]-Zeichen nicht hinzugefügt, wenn man alles auf einmal richtig schreibt? Kann ich ein kleines Beispiel mit dem Extrahieren einer Teilzeichenkette aus dem Bestellkommentar haben, wenn es Ihnen nichts ausmacht?

Sie sollen hinzugefügt werden. Sie wollen Ihre Daten abrufen, und es ist Ihnen egal, was sie hinzufügen oder wie lang die Zeichenkette ist.

   string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring=StringLen(_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                      //извлекаемые подстроки
   delim1=StringFind( _comment, "$", 0);        //определяем позиции разделителей в строке _comment
   delim2=StringFind( _comment, "#", 0);        //определяем позиции разделителей в строке _comment 
   balans   =  StringSubstr( _comment,0, delim1);                //извлекли строку баланс
   stoploss =  StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс 
   Comment("|",balans,"|",stoploss,"|");//проверка 
 
Guten Tag an alle. Ich bin auf eine lustige Situation gestoßen, in der zwei verschiedene Computer eine Verbindung zu demselben Konto herstellen und sogar gleichzeitig mit diesem Konto handeln können. Wer kann mir sagen, ob es möglich ist, einen entfernten Computer zu steuern, z.B. Variablen zu ändern oder zumindest einen EA anzuhalten? Ich danke im Voraus, weil ich eine seltsame Situation konfrontiert, wenn ich nicht übernehmen kann die Kontrolle über das Terminal, das zu Hause funktioniert (mich bei der Arbeit zum Beispiel).
 
granit77:
Sie sollen hinzugefügt werden. Sie wollen Ihre Daten abrufen, und es ist Ihnen egal, was hinzugefügt wird oder wie lang die Zeichenkette ist.


)) Ich danke Ihnen. Großartiges Beispiel! Man kann alles mit einem Wort sagen. Das ist genau die Art von Beispiel, die manchmal schmerzlich vermisst wird.
 
snail09:

Ja, es ist definitiv kochend heiß. Jeder antwortet nur auf deine... Fragen. Vielleicht sind Sie so uninformiert?

Wenn mir jemand sagen würde, wie man die Kreuzung der Trendlinie durch den Preis (eine gerade Linie) nachverfolgen kann, würde mir das reichen, auch nur ein Hinweis? Ich danke Ihnen sofort, denn ich erwarte in absehbarer Zeit keine Antwort. Du, Star, bist ein Fluter, die Moderatoren mögen mir verzeihen...


Ich bin kein Zauberer, ich bin auch das erste Mal hier. 8))))
 
peshihod:

Ihnen fehlt die Übung. Sie können Ihr Programm nicht ausführen, es funktioniert nicht. Ein Teufelskreis: keine praktikable Option-> keine Fähigkeit-> keine praktikable Option.

Ich muss darüber nachdenken.... :-/


Um das Thema fortzusetzen.

Um zu lernen, braucht man Übung.

Gehen Sie im Handelsterminal wie folgt vor:
1. Es muss ein Demokonto eröffnet werden.
Geben Sie die Kontodaten in das Handelsterminal ein: Datei->Anmeldung->...
Verwenden Sie ein geöffnetes Diagramm oder öffnen Sie ein neues Diagramm: Datei->Neues Diagramm->...
3.Setze Maximum in: Service->Einstellungen->Charts->Max.bar_history->250000
4.Setze eine Minute Zeitrahmen: Charts->Period->M1_One_minute
5.Mache Update: Charts->Update
6.Öffne Strategy Tester: Ansicht->Strategietester
Alle anderen Fenster schließen (minimieren), so dass ein Fenster mit einem Diagramm und ein Fenster mit dem Tester übrig bleiben.
------------------
Weiter, in den Einstellungen des Strategietesters:
7. Symbol: Wählen Sie das Symbol, das einen offenen Chart hat.
8.Modell:Nach Eröffnungspreisen (.....)
<<<Dieses Modell wird bis OrderSend() verwendet.>>>
9.Datum verwenden: Markieren Sie das Kästchen.
Datum: _Von:<Vorgestern (außer Samstag und Sonntag)>, _Bis:Heute
10.Visualisierung: deaktivieren, wenn markiert.
11.Zeitraum: M1
12.Optimierung: Häkchen entfernen, falls vorhanden.
---------------------
Öffnen Sie ferner MetaEditor:
13.Im Menü des Handelsterminals:Service->Editor_MetaQuotes_Language
14.Schreiben Sie ein Programm, zum Beispiel:
//=====================

int i;
int const=5;
int Celoe, Ostatok;
bool flag_Odin_Raz=true;




int start()
{

if(flag_Odin_Raz==true)
{
//-------------
i=0;
while(i<22)
   {
   Celoe=i/const;
   Ostatok=MathMod(i,const);
   Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok);
   i=i+1;
   }
//-------------
flag_Odin_Raz=false;
}
return(0);
}

//=============================

15. in MetaEditor, Menü: Datei->Speichern_als: Geben Sie einen Dateinamen an, speichern Sie die Erweiterung .mq4, der Ordner sollte "experts" sein.
16.in MetaEditor im Menü: Datei->Kompilieren
---------------------------------------
dann im Tester in den Einstellungen:
17.Berater: suchen und wählen Sie den Dateinamen des Programms.
Klicken Sie per Mausklick auf die Schaltfläche "Start".
19. im tester->log
Wir sehen das Ergebnis des Programms durch die Print()-Meldungen
-----------------------------------------
Zur einfacheren Ansicht:
20. Klicken Sie mit der rechten Maustaste auf eine beliebige Zeile im Protokoll->Öffnen
. Dadurch wird ein Protokollordner mit einer *.log-Datei geöffnet, die Sie mit einem beliebigen Texteditor, Notepad, Word usw. öffnen können.

PS
Wenn die Datei zu groß ist und kein Texteditor sie öffnen kann, sollten Sie diese Datei mit den Windows-Mitteln löschen und das Programm durch Drücken der Schaltfläche "Start" im Handelsterminal neu starten. Tester-Ordner: "...\Installation_folder\tester\logs", nicht zu verwechseln mit einem anderen: "...\Installation_folder\logs"

PPS
Um programmieren zu lernen, braucht man einen Programmiersprachen-Compiler, der den Text der notwendigen Aktionen in ein "Programm" (menschenlesbar) umwandelt, in eine Sprache von Maschinenbefehlen - verständlich für einen Computer. Ohne Übung ist es unmöglich, etwas zu lernen. Mql4 erstellt keine separaten Programme, *.mq4 wird zu *.ex4, das von einer Programm-Shell aus ausgeführt wird.
*.ex4 kann nicht direkt ausgeführt werden, der oben beschriebene Algorithmus umgeht diesen Punkt.

Grund der Beschwerde: