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

 
lottamer:


druckt Nullen... funktioniert nicht... Ich werde nicht weiter nachforschen, denn es ist offensichtlich, dass die Zyklen einfach durch andere ersetzt werden - das Volumen hat sich eindeutig nicht verringert..... und wir haben bereits eine funktionierende Variante. Außerdem kann ich bei der ersten Variante die Aufträge vergleichen... und hier kann ich nicht einmal sehen, wo der zweite ist... und der erste ist Null...

Nach einigen kleinen Basteleien... die eindeutig das Gehirn entwickeln, funktionierte auch dieser Code! :))) danke


Drucken Sie einfach die Variablen Ticket1 und Ticket2 nach dem Funktionsaufruf aus.
 

rigonich

Können Sie mir sagen, in welche Datei die glob.-Variablen geschrieben werden? Damit es schnell auf ein anderes Terminal übertragen werden kann.

 
rigonich:

Nochmals 45, in dieser Formwählt OrderSelect(LastClosetPoz (),SELECT_BY_TICKET) standardmäßig zwischen schwebenden und offenen Aufträgen, und dieser Auftrag ist nicht dabei. Setzen SieOrderSelect(LastClosetPoz (),SELECT_BY_TICKET, MODE_HISTORY).


naa....nii...MODEs...funktionieren nur mitSELECT_BY_POS. Und das Ticket selbst! Es ist absolut individuell, so dass Sie nicht einmal angeben müssen, wo es ist

(Beenden Sie die Antwort dort... ich war dabei, die Lösung fertigzustellen)

-------Parameter:

Index - Bestellindex oder Bestellschein je nach zweitem Parameter.
Wählen Sie - Auswahl der Flaggen. Es kann einer der folgenden Werte sein:
SELECT_BY_POS - Index im Auftragspool,
SELECT_BY_TICKET - Index ist Bestellschein.
Pool - Optionaler Index des Auftragspools. Wird verwendet, wenn der ausgewählte Parameter SELECT_BY_POS ist. Es kann einer der folgenden Werte sein:
MODE_TRADES (Standard) - aus dem Handelspool ausgewählter Auftrag (offene und schwebende Aufträge),
MODE_HISTORY - aus dem Historienpool ausgewählter Auftrag (geschlossene und stornierte Aufträge).
 
lottamer:


naa....niiiii...mods...funktionieren nur mitSELECT_BY_POS. Und das Ticket selbst! Es ist völlig individuell, so dass Sie nicht einmal angeben müssen, wo es ist

-------Parameter:

Index - Bestellindex oder Bestellschein je nach zweitem Parameter.
Wählen Sie - Auswahl der Flaggen. Es kann einer der folgenden Werte sein:
SELECT_BY_POS - Index im Auftragspool,
SELECT_BY_TICKET - Index ist Auftragsticket.
Pool - Optionaler Index des Auftragspools. Wird verwendet, wenn der ausgewählte Parameter SELECT_BY_POS ist. Es kann sich um einen der folgenden Werte handeln:
MODE_TRADES (Standardwert) - aus dem Handelspool ausgewählter Auftrag (offene und schwebende Aufträge),
MODE_HISTORY - aus dem Historienpool ausgewählter Auftrag (geschlossene und stornierte Aufträge).


Entschuldigung, ich habe mich vertan, Sie haben Recht, es ist nur in Ihrer Zeile if (Print("Stop loss", OrderStopLoss());) Print("StopLoss", OrderStopLoss());; es gibt keine Bedingung, stattdessen wird ein Operator eingefügt.
 
Desead:

Ich bin kein Programmierer, aber manchmal schreibe ich die einfachsten Dinge selbst. Sie können einen einfachen Roboter in jeder beliebigen Sprache schreiben und es ist überhaupt kein Problem. Ich möchte nicht einen Teil der Funktionen als DLL ausführen und sie von μl aus aufrufen, sondern den gesamten Roboter mit seiner eigenen Schnittstelle schreiben, ohne Metatrader aufzurufen. Ich habe viele verschiedene visuelle Sprachen erfunden, in denen ich das ohne großen Aufwand tun kann.


Verstehe, im MT-Paket gibt es Beispiele für das Schreiben von DLLs in C2C++.

Katalog: Katalog, in dem sich die Proben befinden. Nehmen Sie es und bearbeiten Sie es nach Ihren Bedürfnissen. Sie brauchen keine tiefgreifenden C++-Kenntnisse, um damit zu arbeiten. Kenntnisse der C-Grundlagen und der Syntax sind ausreichend.

Bitte beachten Sie: Das Projekt muss über eine .def-Datei verfügen, sonst können Sie die dll nicht verbinden. Im Beispiel ist ein solches Projekt, wie es sein sollte.
 
xant:

rigonich

подскажите пожалуйста, в какой файл записываются глоб. переменные? Чтобы можно было быстро перебрасывать на другой терминал. 

Ich weiß es nicht, ich habe es nicht gefunden, aber Sie können wahrscheinlich service-->global variables im Terminal öffnen und sie von dort kopieren, versuchen Sie es.

Und im Allgemeinen geht es um die Synchronisation mehrerer Terminals, versuchen Sie, in dieser Richtung zu suchen, ich glaube, ich habe so etwas auf dieser Website oder in Artikeln oder in kodobase gefunden.

 
rigonich:


terminal\profile\gvariablen.dat
 
r772ra:


terminal\profile\gvariablen.dat

Danke, das stimmt, ich habe fast alle Ordner durchgesehen, aber ich habe nicht daran gedacht, in die Profile zu schauen.
 
rigonich:

Entschuldigung, ich habe mich vertan, Sie haben recht, es ist nur Ihre Zeile if (Print("Stop loss", OrderStopLoss();) Print("StopLoss", OrderStopLoss();); es gibt keine Bedingung, stattdessen wird ein Operator eingefügt.


Ich stecke wieder fest... beim allerletzten Schritt...

Die Tickets wurden herausgezogen - sie funktionieren. Jetzt versuche ich, sie zu verwenden - umden OrderProfit der entsprechenden Position zu ziehen.... es werden Nullen gedruckt... (aber der Schein wird korrekt gedruckt)

wenn Sie==true entfernen- dasselbe....

Gibt es eine Möglichkeit,OrderSelect ohne if zu verwenden?

WANN es funktioniert:

if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("StopLoss", OrderStopLoss());

druckt das Stop-Loss-Niveau.

---------------------------

Ich werde Ihre Version mit einer gemeinsamen Schleife nehmen müssen.OrderProfit wird dorteindeutig erkannt! Verdammt, wo ist der Unterschied, alles ist gleich?

 LastClosetPoz();SecLastClosetPoz();   Print ( LastClosetPoz(),"___",SecLastClosetPoz()); 

 

if  (OrderSelect( LastClosetPoz(),SELECT_BY_TICKET)==true) X=OrderProfit();



if  (OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET)==true) Y=OrderProfit(); Print (X,"+",);

 
 
lottamer:


Ich stecke wieder fest... beim allerletzten Schritt...

Die Tickets wurden herausgezogen - sie funktionieren. Jetzt versuche ich, sie zu verwenden - umOrderProfit der entsprechenden Position zu ziehen.... es werden Nullen gedruckt... (aber die Tickets werden korrekt gedruckt)

wenn Sie==true entfernen- dasselbe....

Gibt es eine Möglichkeit,OrderSelect ohne if zu verwenden?

WANN es funktioniert:

if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("StopLoss", OrderStopLoss());

druckt das Stop-Loss-Niveau.

---------------------------

Ich werde Ihre Version mit einer gemeinsamen Schleife nehmen müssen.OrderProfit wird dorteindeutig erkannt! Verdammt, wo ist der Unterschied, alles ist gleich?

OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET);
Sie können die Funktion auch so verwenden: Wenn die Bestellung mit dem gewünschten Ticket existiert, wird sie ausgewählt.