Websocket come? - pagina 13

 
Igor Makanu:

C'è ancora qualcosa che non va, in teoria questo codice dovrebbe funzionare.

C#

MQL5

Ottengo errori di compilazione, che il parametro t1 non può essere convertito

Il tipo MqlTick definito in C# e il tipo MqlTick definito in MQL sono tipi diversi.
Cambia il nome del tipo in Sharp e lavora solo con questo tipo
O copiare i valori restituiti nel tipo Mql

 
Vladimir Suslov:

Il tipo MqlTick definito in C# e il tipo MqlTick definito in MQL sono tipi diversi.
Cambia il nome del tipo in Sharp e lavora solo con questo tipo
o copia i valori restituiti nel tipo Mql

Non l'ho testato (il PC è occupato con la rete che si blocca!!!),

ma penso che funzionerà come scrivi

non c'è una corretta documentazione di scambio MQL-C# in generale, il mio esempio usa l'allineamento dei campi della struttura, nel tuo i campi sono della stessa dimensione, e se ci sono altri tipi, cosa succederà quando si scambiano i dati? - Ho il sospetto che nella migliore delle ipotesi si tratterà di un errore di tempo, nella peggiore - perdita di dati.

C'è un buon articolo sulla gestione della struttura in C# su Habra, mi ricordo, che in C# è l'allineamento di default, ma in MQL è il contrario - lo troverò più tardi, quando sarò libero.

 
Igor Makanu:

Non ho controllato (rete del PC appesa alla città occupata!!!),

La città della rete sembra essere morta ovunque. Anche il nostro a Volgograd è in bilico. Sito miracoloso )))

 
Igor Makanu:

Non l'ho testato (il PC cittadino in rete è occupato!!!),

Ma penso che funzionerà come scrivi

non c'è una documentazione adeguata sullo scambio MQL-C# in generale, il mio esempio usa l'allineamento dei campi della struttura, nel tuo esempio i campi sono della stessa dimensione, e se ci sono altri tipi, cosa succederà quando si scambiano i dati? - Ho il sospetto che nella migliore delle ipotesi si tratterà di un errore di tempo, nella peggiore - perdita di dati.

c'è un buon articolo su Habra sul lavoro con le strutture in C#, ricordo che in C# l'allineamento è predefinito, ma in MQL è viceversa - lo troverò più tardi, quando avrò abbastanza spazio sul mio PC

Ho fatto un esempio con una struttura semplice con due dub.
Non c'è niente da allineare.
Una struttura più complessa potrebbe aver bisogno di un allineamento.
Questo deve essere controllato.

ps la rete è ok)

Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
  • www.mql5.com
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов. Объявление структуры Имя структуры нельзя использовать в качестве идентификатора (имени переменной или функции). Следует иметь ввиду, что в MQL5 элементы структуры следуют непосредственно друг...
 
Алексей Барбашин:

Fedor, rimane solo un ultimo caso di test: ottenere la struttura dei tick da sharp a mql. Pensate a come implementarlo, tutti gli esempi sono qui, Volodya ha mostrato come ottenere dati come struttura da sharp.

Sto aspettando il risultato finale.

Lo farò ora. Cosa ne pensate? Funzionerà in MT4?
 

L'ho fatto. Ti ho mandato un messaggio via chat


 
Алексей Барбашин:

Se avete bisogno di trasferire una grande quantità di informazioni eterogenee, allora è meglio fare come per il web socket: impacchettare le informazioni sul lato sharp in json, codificarle in stringa e restituirle come stringa, e fare la conversione inversa sul lato mql. Funziona molto velocemente, l'ho provato. :)

Ma è meglio usare metodi regolari, per esempio le stesse strutture, se possibile. :)

No, ho bisogno di strutture, le strutture sono pratiche. Grazie, ora ho una visione chiara di come funzionano le cose in C# + MQL5.


Vladimir Suslov:

Ho fatto un esempio con una struttura semplice con due dub.
Non c'è niente da allineare.
Per una struttura più complessa potrebbe essere necessario l'allineamento.
Questo deve essere controllato.

ps la rete è ok)

Ho trovato un articolo sulle strutture in C#https://habr.com/ru/post/114953/

tutto sommato c'è abbastanza materiale con cui lavorare, grazie

 

Taglierò un po', dato che tutti gli attori sono probabilmente stanchi dello spettacolo

Che dire del consumo di memoria/cpu, specialmente quando si eseguono un paio di questi EAs allo stesso tempo?

non si sovraccaricano se vengono avviati dallo stesso processo?

A mio modesto parere, una ricetta incompiuta (finora) è quella di prendere Socket MQL e rendere http+websocket in esso al minimo. Almeno funzionerà su VPS metaquotes. Naturalmente, questo è un tramonto a mano, ma guarda gli articoli - così anche MySQL è affrontato in questo modo

 
Fedor Arkhipov:
Lo farò ora. Cosa ne pensate? Funzionerà in MT4?

solo attraverso il metodo dell'articolohttps://www.mql5.com/ru/articles/249

MQL4 non sa come chiamare il codice gestito, o scrivere un wrapper in C++ e usarlo per chiamare .Net o l'articolo sopra, ho controllato l'articolo l'anno scorso - tutto funziona, ma c'è un sacco di lavoro - molte insidie, se siete interessati non iniziate, avete bisogno di molto tempo per cercare su Google il materiale quando sorgono problemi

 
Maxim Kuznetsov:

Interrompo per un po', con la buona ragione che tutti gli attori sono probabilmente stanchi per la commedia


Potete affittare un normale VDS di Windows ed eseguirlo da una DLL, potete eseguire diversi terminali simultaneamente.