Dienstleistungen. Sind sie schon einsatzbereit? - Seite 14

 
Maxim Dmitrievsky:

Viele Plattformen verfügen über diese Option, zum Beispiel. Es ist gängige Praxis, einen Feed zu verwenden und mit einem anderen Broker zu handeln.

Arbitrage hat damit nichts zu tun.

Der andere Anbieter hat zum Beispiel die Markttiefe, andere Informationssymbole (Indizes, Futures) und andere Goodies

Ja, ich lerne gerade, mit Ninja Trader 8 Volumina zu erfassen. Ich habe es schnell und schlecht gemacht, durch Dateien. Ich werde versuchen, dies über die Dienste zu tun.

 
fxsaber:

Ohne die DLL können Sie die grafische Benutzeroberfläche des Terminals nicht "erweitern".

Die Kommunikation über Memory Mapping erfolgt dabei in beide Richtungen.

 
fxsaber:

Ich verstehe, dass der Traum eines Schiedsrichters eine ähnliche API ist. Die einzige Möglichkeit, dieses Problem zu lösen, besteht darin, mehrere Terminals parallel zu betreiben.

Sie nehmen ein Master-Terminal und nutzen den Dienst, um Daten von anderen offenen Terminals zu sammeln. Insgesamt haben Sie auf dem Master-Terminal

EURUSD_Alpari.

EURUSD_Dukascopy

EURUSD_LMAX

----


Für den Fall, dass das Master-Terminal auf einem langsamen DC läuft, kann ein einfacher Expert Advisor geschrieben werden, der nicht über MQL hinausgeht. Die ganze Drecksarbeit wird vom Dienst erledigt.

Wie funktioniert das? Zwei Worte, bitte.

 
Реter Konow:

Ein benutzerdefinierter Prozess im Terminal, auf den jeder EA zugreifen kann. Sie können endlose Berechnungen im Zusammenhang mit dem Marktumfeld in separaten Threads in Diensten ausführen und zum richtigen Zeitpunkt aktuelle Ergebnisse aus den Prozessen übernehmen.

Ringpuffer.

Es ist schade, dass im Gegensatz zu Winndows die Dienste von MT5 lokal im Terminal sind...

 
Alexey Volchanskiy:

Ja, ich lerne gerade, wie man mit Ninja Trader 8 Volumina erfasst. Ich habe eine schnelle und kitschige, durch Dateien. Ich werde es über die Dienste versuchen.

NT ist imho ein totes Projekt.

 
Maxim Dmitrievsky:

NT ist imho ein totes Projekt.

Sie ist lebendig und wächst

 
Alexey Volchanskiy:

Gibt es ein Beispiel für eine fliegende Datenübertragung über Ressourcen?

Eine Suche sollte sie finden.

Alexey Volchanskiy:

Wie kann man das tun? Kurz und bündig.

FILE_COMMON oder DLL.

 
Maxim Dmitrievsky:

NT ist imho ein totes Projekt.

Wenn ich das sage, schreibe ich weiter, weil erstens ..., zweitens .... usw. Aber das ist nur ein weiterer Furz in einem Vakuum).

Es ist immer noch vollwertiges C#, .NET in der neuesten Version, etwa 4.5 oder 4.6. Sie können Programme direkt in VS2017 schreiben und debuggen, steht da etwas? Dazu kommt die ganze Leistungsfähigkeit der .NET-Bibliotheken. Und, was für mich am wichtigsten ist, Zugang zu den Volumina der Futures. Aber nicht an der Moskauer Börse, wo alles den globalen Schwankungen um einige Minuten hinterherhinkt. Übrigens gibt es auch den Markt, aber ich habe ihn noch nicht studiert, es ist noch zu früh.

 
fxsaber:

FILE_COMMON oder DLL.

Ahh, ich dachte, man hätte etwas Neues erfunden, was die Dienstleistungen betrifft.

 
Alexey Volchanskiy:

Es ist immer noch vollwertiges C#, mit einer recht aktuellen Version von .NET, wie 4.5 oder 4.6. Sie können Programme in VS2017 schreiben und debuggen, sagt das etwas aus?

Wir sind hier auch nicht eingeweiht!

Ich habe den Momentum-Indikator aus der MT5-Auslieferung innerhalb von 10 Minuten umgeschrieben... Neu geschrieben... in VS2017 kopiert )))

MQL5-Quellcode:

#import "tst_momentum.dll"
#import
..... текст оригинала индикатора Momentum.mql5

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   int StartCalcPosition;
   double pr[];
   ArrayCopy(pr,price);
   momentum::oncalculate(ExtMomentumPeriod,rates_total,prev_calculated,begin,pr,StartCalcPosition,ExtMomentumBuffer);
   if(begin>0) PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,StartCalcPosition+(ExtMomentumPeriod-1));
   return(rates_total);
  }

C#-Quellcode

namespace tst_momentum
{
    public class momentum
    {
        public static void oncalculate(int ExtMomentumPeriod,
                                int rates_total,
                                int prev_calculated,
                                int begin,
                                double[] price,
                                ref int StartCalcPosition,
                                ref double[] OUTArray)
        {
            StartCalcPosition = (ExtMomentumPeriod - 1) + begin;
            if (rates_total < StartCalcPosition) return;
            int pos = prev_calculated - 1;
            if (pos < StartCalcPosition) pos = begin + ExtMomentumPeriod;
            for (int i = pos; i < rates_total;  i++)
            {
                OUTArray[i] = price[i] * 100 / price[i - ExtMomentumPeriod];
            }
        }
    }
}

MQL5 übernimmt die Speicherzuweisung, C# die Berechnungen

ZS: Ich weiß nicht, wie man Preis[] zu C#ohne Kopieren übergeben- alle Varianten?