MT5 und trans2quik.dll - Seite 16

 
prostotrader:

Sie schlagen ein noch größeres "Problem" vor: Das EBS-Konto ist gut, weil das Geld nicht in Abschnitte aufgeteilt ist.

Was Sie im Video gesehen haben, funktioniert, aber sehr langsam!

Schnell --> DDE --> Mein Block <--> trans2quik.dl <--> Schnell

Ich habe Quick --> DDE --> durch MT5 --> PostMessage --> ersetzt.

Es wurde viel schneller.

Das heißt, 2 Zeilen Code und keine Belastung für das Terminal und das System.

Senden von Nachrichten

Empfang von Nachrichten

In dieser Situation sind mir die EBS-Vorteile ziemlich egal.

Ich will nichts für Quik schreiben, es ist ein absolut instabiles Terminal, ich werde nicht gefesselt dasitzen und zusehen, ob Quik abgestürzt ist.

 
Dmi3:

In dieser Situation sind mir die Vorteile von EBS ziemlich egal.

Ich will nichts für Quik schreiben, es ist ein absolut instabiles Terminal, wie ein Fesselträger dazusitzen und zu schauen, ob Quik abgefallen ist, gehört nicht zu meinen Lebensplänen.

Niemand zwingt Sie zum Schreiben....

 
prostotrader:

Alle diese "Gadgets" werden benötigt, um über QuickBooks auf EBS-Konten zu handeln (oder für die Echtzeitanalyse von Daten außerhalb von MT5).

Die Datenausgabe vom langsamen Quik über DDE an Ihre Anwendung ist sehr langsam,

Die Daten werden also von MT5 übernommen, und die Handelsaufträge werden über deren API (trans2quik.dll) an Kvik gesendet.

Der Mechanismus ist

MT5 --> Eigene Anwendung <--> trans2quik.dll <--> Schnell

Hier ist ein Beispiel für den Handel in Kvik für Futures gegen Aktien


Leider verstehe ich nichts anderes als MQL :(

Ist es möglich, eine Anleitung für Dummies zu schreiben, wie man das alles umsetzt, oder ist es ein geschlossener Code und es werden nur seine Elemente vorgestellt?

 
Aleksey Vyazmikin:

Leider verstehe ich nichts, was über MQL hinausgeht :(

Ist es möglich, eine Anleitung für Dummies zu schreiben, wie man das alles umsetzt, oder ist es ein geschlossener Code und nur seine Elemente werden vorgestellt?

Es ist unwahrscheinlich, dass ein "Dummy" seine eigene Anwendung schreibt, die PostMessage von MT5 empfängt und Trades über Quick API verwaltet.

 

Weiß jemand, wie man in QLua an freie Gelder kommt?

w32 = require("w32")

is_run = false
HWND_BROADCAST = 0xFFFF
A_double = 0.0
WParam = 2
lpParam = 1

WM_EBS_MONEY = w32.RegisterWindowMessage("WM_EBS_MONEY")


if WM_EBS_MONEY >= 0xC000 then
  is_run = true
else
  message("Window not registered!") 
end

function OnStop()
  is_run = false
end


function main()
  while is_run do

 --   A_double = Как получить свободные средства????
    lpParam = A_double * 100
    w32.PostMessage(HWND_BROADCAST, WM_EBS_MONEY, WParam, lpParam)
    sleep(100)
  end
end

 
prostotrader:

Haben Sie jemals versucht, in QPile oder QLua zu schreiben?

Sie können darin ein einfaches Skript schreiben und das war's!

Es ist zwar möglich, sie zu schreiben, aber es ist unmöglich, sie richtig zu testen.

Wer verbietet es, zumindest das gleiche C#/C++ zu verwenden. LUA-Bindung ist ganz normal.
Was die Tests betrifft, kann ich Ihnen zustimmen. QUIK hat keine Möglichkeit, es im Tester zu testen. Aber es ist möglich, eine Bibliothek des virtuellen Handels zu schreiben (ich habe sogar eine fertige Bibliothek irgendwo im Netz) und sie so lange zu testen, wie Sie wollen.

prostotrader:

Vielleicht weiß jemand, wie man in QLua an freie Gelder kommt?

>>>

P.S. Es gibt eine gute Datei QLUA.chm in QUIK. Öffnen Sie es und lesen Sie es.

 
prostotrader:

Weiß jemand, wie man in QLua an freie Gelder kommt?

Es gibt eine getMoneyEx()-Funktion in Lua, vielleicht kannst du sie benutzen. http://luaq.ru/getMoneyEx.html

 
Vitalii Ananev:

Das Lua hat die Funktion getMoneyEx(), vielleicht kannst du sie benutzen. http://luaq.ru/getMoneyEx.html

Danke, das Problem ist gelöst.

Die Funktion heißt

getPortfolioInfoEx

Jeder, es gibt einen Mechanismus für den Handel in Quick auf EBS-Konten mit sehr schnellen Datenabruf von MT5

Hinzugefügt

Schade, dass MQ den Aktienbereich von MT5 aufgegeben hat

Hinzugefügt

(falls jemand es braucht)

Bibliothek w32.dllhttps://quik2dde.ru/viewtopic.php?id=293

Und LUA-Skript

w32 = require("w32")

is_run = false
HWND_BROADCAST = 0xFFFF
A_double = 0.0
WParam = 2
lpParam = 1

WM_EBS_MONEY = w32.RegisterWindowMessage("WM_EBS_MONEY")

if WM_EBS_MONEY >= 0xC000 then
  is_run = true
else
  message("Message not registered!") 
end

function OnStop()
  is_run = false
end

function main()
  while is_run do
    a_table = getPortfolioInfoEx("MCXXXXXX", "XXXXX", 0)  
    A_double = a_table.limit_open_pos
    lpParam = math.floor (A_double * 100)
    w32.PostMessage(HWND_BROADCAST, WM_EBS_MONEY, WParam, lpParam)
    sleep(10)
  end
end

Wo

MCXXXXXX - firm ID
XXXXX - accaunt

Hinzugefügt

So funktioniert's


 

Sehen Sie, wie Quick intern funktioniert (Tabelle update.... 1pc Unterschied von mir math.floor )


 
prostotrader:

Sehen Sie, wie Quick intern funktioniert (Tabelle update.... 1pc Unterschied von mir math.floor )


Ist die Verzögerung bei der Darstellung also so groß?