Schnelle Einführung eines halbautomatischen quantitativen Handelstools
Im Rohstoff-Futures-Handel sind Intertemporary Arbitrage eine gängige Handelsmethode. Diese Art von Arbitrage ist nicht risikofrei. Wenn die einseitige Richtung des Spreads weiter expandiert, befindet sich die Arbitrageposition in einem schwimmenden Verlustzustand. Solange die Arbitrageposition jedoch richtig kontrolliert ist, ist sie immer noch sehr funktionsfähig und machbar.
In diesem Artikel versuchen wir, zu einer anderen Handelsstrategie zu wechseln, anstatt eine vollautomatisierte Handelsstrategie zu konstruieren, haben wir ein interaktives halbautomatisches quantitatives Handelswerkzeug realisiert, um die intertemporäre Arbitrage im Rohstoff-Futures-Handel zu erleichtern.
Die Entwicklungsplattform, die wir verwenden werden, ist die FMZ Quant Plattform.
Intertemporales Arbitrage ist ein sehr einfaches Konzept.
# Strategy Design
The strategy framework is as follows:
Funktion Hauptelement
Während es wahr ist.
If(exchange.IO(
If the CTP protocol is connected properly, then we need to set up the trading contract and then get the market quote. After obtaining the quotes, we can use the FMZ Quant platform build-in "line drawing" library to draw the difference.
Funktion Hauptelement
Während es wahr ist.
If(exchange.IO(
LogStatus(_D(),
Get the market data, calculate the difference, and draw the graph to record. let it simply reflects the recent fluctuations in the price difference.
Use the function of "line drawing" library ```$.PlotLine```
![Quickly implement a semi-automatic quantitative trading tool](/upload/asset/6e286fea238b8266dd13.png)
# Interactive part
On the strategy editing page, you can add interactive controls directly to the strategy:
![Quickly implement a semi-automatic quantitative trading tool](/upload/asset/6e9b91112616d444b964.png)
Use the function ```GetCommand``` in the strategy code to capture the command that was sent to the robot after the above strategy control was triggered.
After the command is captured, different commands can be processed differently.
The trading part of the code can be packaged using the "Commodity Futures Trading Class Library" function. First, use ```var q = $.NewTaskQueue()``` to generate the transaction control object ```q``` (declared as a global variable).
VAR cmd = GetCommand
wenn (cmd) {
wenn (cmd ==