MT5 y trans2quik.dll - página 16

 
prostotrader:

La cuenta EBS es buena porque el dinero no está dividido en secciones.

Lo que has visto en el vídeo funciona, ¡pero muy lentamente!

Quick --> DDE --> Mi pad <--> trans2quik.dl <--> Quick

He sustituido Quick --> DDE --> por MT5 --> PostMessage -->.

Se hizo mucho más rápido.

Lo dicho, 2 líneas de código y ninguna carga para el terminal y el sistema.

Envío de mensajes

Recepción de mensajes

A mí, en esta situación, no me importan mucho las ventajas de EBS.

No quiero escribir nada para Quik, es un terminal absolutamente inestable, no voy a sentarme, atado y mirar, si Quik se ha estrellado.

 
Dmi3:

A mí, en esta situación, no me importan mucho las ventajas de EBS.

No quiero escribir nada para Quik, es un terminal absolutamente inestable, sentarse como un atado, ver si Quik se ha caído, no forma parte de mis planes de vida.

Nadie te obliga a escribir....

 
prostotrader:

Todos estos "gadgets" son necesarios para operar a través de QuickBooks en cuentas EBS (o para el análisis en tiempo real de los datos fuera de MT5).

La salida de datos a su aplicación desde el lento Quik vía DDE es muy lenta,

por lo que los datos se toman de MT5, y las órdenes de trading se envían a Kvik a través de su API (trans2quik.dll).

El mecanismo es

MT5 --> Aplicación propia <--> trans2quik.dll <--> Quick

Este es un ejemplo de negociación en Kvik para futuros contra acciones


Por desgracia, no entiendo nada más allá de MQL :(

¿Es posible escribir una instrucción para dummies, cómo implementar todo esto, o es un código cerrado y sólo se presentan sus elementos?

 
Aleksey Vyazmikin:

Por desgracia, no entiendo nada más allá de MQL :(

¿Es posible escribir una instrucción para dummies de cómo implementar todo esto, o es un código cerrado y sólo se presentan sus elementos?

Es poco probable que un "tonto" escriba su propia aplicación que reciba PostMessage de MT5 y gestione las operaciones a través de Quick API

 

¿Alguien sabe cómo obtener fondos gratis en QLua?

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:

¿Has probado a escribir en QPile o QLua?

Puedes escribir un simple guión en ellos y ya está.

Puede ser posible escribirlo, pero es imposible probarlo adecuadamente.

Quién prohíbe usar al menos el mismo C#/C++. La unión de LUA es bastante normal.
En cuanto a las pruebas, puedo estar de acuerdo con usted. QUIK no tiene la posibilidad de probarlo en el probador. Pero es posible escribir una biblioteca de comercio virtual (incluso tengo una biblioteca lista en algún lugar de la red) y probarla todo lo que quieras.

prostotrader:

¿Tal vez alguien sabe cómo obtener fondos gratis en QLua?

>>>

P.D. Hay un buen archivo QLUA.chm en QUIK. Ábrelo y léelo.

 
prostotrader:

¿Alguien sabe cómo obtener fondos gratis en QLua?

Hay una función getMoneyEx() en lua, tal vez puedas usarla. http://luaq.ru/getMoneyEx.html

 
Vitalii Ananev:

El lua tiene una función getMoneyEx(), tal vez puedas usarla. http://luaq.ru/getMoneyEx.html

Gracias, el problema está resuelto.

La función se llama

getPortfolioInfoEx

Todo el mundo, hay un mecanismo para el comercio en Quick en las cuentas de EBS con la recuperación de datos muy rápido de MT5

Añadido

Lástima que MQ haya abandonado la sección de acciones de MT5

Añadido

(si alguien lo necesita)

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

Y el script LUA

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

Donde

MCXXXXXX - firm ID
XXXXX - accaunt

Añadido

Así es como funciona


 

Vea cómo funciona Quick internamente (tabla update.... 1pc diferencia hecha por mí math.floor )


 
prostotrader:

Vea cómo funciona Quick internamente (tabla update.... 1pc diferencia hecha por mí math.floor )


Entonces, ¿hay tanto retraso en su renderización?