// true
}
[http://underscorejs.org/](http://underscorejs.org/)
```js
function main() {
var sum = _.reduce([1, 2, 3], function(memo, num){return memo + num}, 0)
Log(sum)
}
C++
Bibliothekhttps://nlohmann.github.io/json/
void main() {
json table = R"({"type": "table", "title": "Position Information", "cols": ["Column1", "Column2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
LogStatus("`" + table.dump() + "`");
LogStatus("Fist line message\n`" + table.dump() + "`\nThird line message");
json arr = R"([])"_json;
arr.push_back(table);
arr.push_back(table);
LogStatus("`" + arr.dump() + "`");
table = R"({
"type" : "table",
"title" : "Position Operation",
"cols" : ["Column1", "Column2", "Action"],
"rows" : [
["abc", "def", {"type": "button", "cmd": "coverAll", "name": "close position"}]
]
})"_json;
LogStatus("`" + table.dump() + "`", "\n`" + R"({"type": "button", "cmd": "coverAll", "name": "close position"})"_json.dump() + "`");
}
Zu den Parametern der folgenden Funktionen gehören:Records[Close]
stellt den Schlusskurs in den eingehenden k-Liniendaten dar,Array()
stellt ein Array dar undArray(outInteger)
stellt die Rückgabe eines Arrays mit ganzen Zahlen dar.
Beispielcode für AnrufeCCI
Indikator:
function main() {
var records = exchange.GetRecords()
var cci = talib.CCI(records, 14)
Log(cci)
}
import talib
def main():
records = exchange.GetRecords()
# the parameter "14" can be default
cci = talib.CCI(records.High, records.Low, records.Close, 14)
Log(cci)
void main() {
auto records = exchange.GetRecords();
auto cci = talib.CCI(records, 14);
Log(cci);
}
Pattern Recognition
:
Indikator | Beschreibung |
---|---|
CDL2CROWS | Zwei Krähen |
CDL2CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3BLACKCROWS | Drei schwarze Krähen |
CDL3BLACKCROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3INSIDE | Drei nach innen, nach oben, nach unten |
CDL3INSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3LINESTRIKE | Drei-Linien-Streik |
CDL3LINESTRIKE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3AUSEN | Drei Außen oben/unten |
CDL3OUTSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3Stern im Süden | Drei Sterne im Süden |
CDL3STARSINSOUTH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3 Weiße Soldaten | Drei weiße Soldaten im Vormarsch |
CDL3WHITESOLDIERS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLABANDONEDBABY ist für dich. | Verlassenes Baby |
CDLABANDONEDBABY ((Records[Open,High,Low,Close],Penetrierung = 0.3) = Array ((outInteger) | |
CDLADVANCEBLOCK | Vorlaufblock |
CDLADVANCEBLOCK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLBELTHOLD | Gürtel halten |
CDLBELTHOLD ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLBRAKAWAY | Abspaltung |
CDLBREAKAWAY ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLClosingMarubozu | Abschluss von Marubozu |
CDLCLOSINGMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLCONCEALBABYSWALL ist für Sie nicht verfügbar. | Wie man eine Schwalbe versteckt |
CDLCONCEALBABYSWALL ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLGegenangriff | Gegenangriff |
CDLCOUNTERATTACK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLDARKCLOUDCOVER | Dunkle Wolkendecke |
CDLDARKCLOUDCOVER ((Records[Open,High,Low,Close],Penetrierung = 0.5) = Array ((outInteger) | |
CDLDOJI | Ich bin ein Doji. |
CDLDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLDOJISTAR | Doji-Stern |
CDLDOJISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLDRAGONFLYDOJI (Drachenflügel) | Die Libelle Doji |
CDLDRAGONFLYDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLENGULFING | Ein verschluckendes Muster |
CDLENGULFING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLEVENINGDOJISTAR ist für Sie ein großer Erfolg. | Abendstern |
CDLEVENINGDOJISTAR ((Records[Open,High,Low,Close],Penetrierung = 0.3) = Array ((outInteger) | |
CDLEVENINGSTAR | Abendstern |
CDLEVENINGSTAR ((Records[Open,High,Low,Close],Penetration = 0.3) = Array ((outInteger) | |
CDLGAPSIDESIDEWITZ | Aufwärts-/Abwärts-Grenze nebenan weiße Linien |
CDLGAPSIDESIDEWHITE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLGRAVESTONEDOJI | Grabstein Doji |
CDLGRAVESTONEDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHAMMER | Hämmer |
CDLHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHANGINGMAN ist ein guter Mann. | Der Hängende |
CDLHANGINGMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHARAMI | Harami-Muster |
CDLHARAMI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHARAMICROSS | Harami Kreuzmuster |
CDLHARAMICROSS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHIGHWAVE | Hochwellenkerze |
CDLHIGHWAVE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHIKKAKE | Hikkake-Muster |
CDLHIKKAKE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHIKKAKEMOD | Modifiziertes Hikkake-Muster |
CDLHIKKAKEMOD ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHOMINGPIGEON | Pigeon-Homing |
CDLHOMINGPIGEON ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLIDENTICAL3CROWS ist für Sie eine gute Idee. | Drei gleiche Krähen |
CDLIDENTICAL3CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLINNECK | Muster im Nacken |
CDLINNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLINVERTEDHAMMER | Umgekehrter Hammer |
CDLINVERTEDHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLKICKING | Ich trete. |
CDLKICKING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLKICKINGBYLENGTH | Treten - Stier/Bär bestimmt durch den längeren Marubozu |
CDLKICKINGBYLENGTH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLLADDERBOTTOM | Boden der Leiter |
CDLLADDERBOTTOM ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
Ich bin nicht derjenige, der das Problem hat. | Langbeinige Dojz |
CDLLONGLEGGEDDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLLONGLINE | Lange Linienkerze |
CDLLONGLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLMARUBOZU | Marubōzu |
CDLMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLMATCHINGLOW | Niedrige Übereinstimmung |
CDLMATCHINGLOW ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLMATHOLD | Mattenhalte |
CDLMATHOLD ((Records[Open,High,Low,Close],Penetration = 0.5) = Array ((outInteger) | |
CDMORNINGDOJISTAR ist ein großes Projekt. | Morgenstern |
CDLMORNINGDOJISTAR ((Records[Open,High,Low,Close],Penetrierung = 0.3) = Array ((outInteger) | |
CDLMORNINGSTAR | Morgenstern |
CDLMORNINGSTAR ((Records[Open,High,Low,Close],Penetrierung = 0.3) = Array ((outInteger) | |
CDLONNECK | Muster am Hals |
CDLONNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLPIERCING | Durchbohrendes Muster |
CDLPIERCING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLRICKSHAWMAN | Der Rikscha-Mann |
CDLRICKSHAWMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLRISEFALL3Methoden | Aufstieg/Abstieg drei Methoden |
CDLRISEFALL3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSEZEINSCHIEDENDE Linien | Trennlinien |
CDLSEPARATINGLINES ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLShootingSTAR | Schießender Stern |
CDLSHOOTINGSTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSKURZLINE | Kurze Linie Kerze |
CDLSHORTLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL Spinningtop | Spinnende Spitze |
CDLSPINNINGTOP ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSTALLEDPATTERN | Stallbild |
CDLSTALLEDPATTERN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSTICKSANDWICH | Ein Sandwich. |
CDLSTICKSANDWICH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTAKURI | Takuri (Dragonfly Doji mit sehr langem Unterschatten) |
CDLTAKURI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTASUKIGAP | Das Tasuki Gap |
CDLTASUKIGAP ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTHRUSTING | Schub-Muster |
CDLTHRUSTING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTRISTAR | Tristar-Muster |
CDLTRISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLUNIQUE3RIVER | Einzigartiger 3 Fluss |
CDLUNIQUE3RIVER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLUPSIDEGAP2CROWS ist nicht verfügbar. | Aufwärtsgeschaltet Zwei Krähen |
CDLUPSIDEGAP2CROWS ((Records [Open,High,Low,Close]) = Array ((outInteger) | |
CDLXSIDEGAP3Methoden | Aufwärts-/Abwärtslücke drei Methoden |
CDLXSIDEGAP3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger) |
Volume Indicators
:
Indikator | Beschreibung |
---|---|
AD | Chaikin A/D-Leitung |
AD ((Records[High,Low,Close,Volume]) = Array ((outReal) | |
ADOSC | Chaikin-A/D-Oszillator |
ADOSC ((Records[High,Low,Close,Volume],Fast Period = 3,Slow Period = 10) = Array ((outReal) | |
OBV | Über das Bilanzvolumen |
OBV ((Records[Close],Records[Volume]) = Array ((outReal) |
Math Transform
:
Indikator | Beschreibung |
---|---|
ACOS | Vektorrigonometrische ACos |
ACOS ((Records[Close]) = Array ((outReal) | |
ASIN | Vektor-Trigonometrische ASin |
ASIN ((Records[Close]) = Array ((outReal) | |
ATAN | Vektor-Trigonometrische ATan |
ATAN ((Records[Close]) = Array ((outReal) | |
CEIL | Vektordecke |
CEIL ((Records[Close]) = Array ((outReal) | |
Kosten für den Betrieb | Vektor-Trigonometrische Cos |
COS ((Records[Close]) = Array ((outReal) | |
COSH | Vektor-Trigonometrischer Cosh |
COSH ((Records[Close]) = Array ((outReal) | |
Auslauf | Vektorarithmetik Exp |
EXP ((Records[Close]) = Array ((outReal) | |
Fußboden | Vektorfläche |
FLOOR ((Records[Close]) = Array ((outReal) | |
LN | Vektor Log Natural |
LN ((Records[Close]) = Array ((outReal) | |
LOG10 | Vektor Log10 |
LOG10 ((Records[Close]) = Array ((outReal) | |
SIN | Vektor-Trigonometrisches Sin |
SIN ((Records[Close]) = Array ((outReal) | |
SINH | Vektor-Trigonometrische Synchronisation |
SINH ((Records[Close]) = Array ((outReal) | |
SQRT | Quadratwurzel des Vektors |
SQRT ((Records[Close]) = Array ((outReal) | |
TAN | Vektor Trigonometrischer Tan |
TAN ((Records[Close]) = Array ((outReal) | |
TANH | Vektor-Trigonometrische Tanh |
TANH ((Records[Close]) = Array ((outReal) |
Math Operators
:
Indikator | Beschreibung |
---|---|
Maximal | Höchster Wert in einem bestimmten Zeitraum |
MAX ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
MAXINDEX | Index mit dem höchsten Wert in einem bestimmten Zeitraum |
MAXINDEX ((Records[Close],Zeitrahmen = 30) = Array ((outInteger) | |
MIN | Mindestwert über einen bestimmten Zeitraum |
MIN ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
MININDEX | Index des niedrigsten Wertes über einen bestimmten Zeitraum |
MININDEX ((Records[Close],Zeitrahmen = 30) = Array ((outInteger) | |
MINMAX | Mindest- und Höchstwerte für einen bestimmten Zeitraum |
Die Daten werden in der Tabelle 1 aufgeführt. | |
MINMAXINDEX | Indizes der niedrigsten und höchsten Werte über einen bestimmten Zeitraum |
MINMAXINDEX ((Records[Close],Zeitperiode = 30) = [Array ((outMinIdx),Array ((outMaxIdx) ] | |
Gesamtbetrag | Zusammenfassung |
SUM ((Records[Close],Zeitrahmen = 30) = Array ((outReal) |
Cycle Indicators
:
Indikator | Beschreibung |
---|---|
Der Wert des Zinssatzes ist zu messen | Hilbertsche Transformation - Periode des dominierenden Zyklus |
HT_DCPERIOD ((Records[Close]) = Array ((outReal) | |
Ht_DCPHASE | Hilbertsche Transformation - Dominanzphase des Zyklus |
HT_DCPHASE ((Records[Close]) = Array ((outReal) | |
HT_PHASOR | Hilbertsche Transform - Phasorkomponenten |
HT_PHASOR ((Records[Close]) = [Array ((outInPhase),Array ((outQuadrature) ] | |
Ht_SINE | Hilbertsche Transform - Sinewave |
HT_SINE ((Records[Close]) = [Array ((outSine),Array ((outLeadSine) ] | |
Der Wert des Zinssatzes ist zu messen | Hilbert-Transform - Trend gegen Zyklusmodus |
HT_TRENDMODE ((Records[Close]) = Array ((outInteger) |
Volatility Indicators
:
Indikator | Beschreibung |
---|---|
ATR | Durchschnittlicher tatsächlicher Bereich |
ATR ((Records[High,Low,Close],Zeitrahmen = 14) = Array ((outReal) | |
NATR | Normalisierter durchschnittlicher tatsächlicher Bereich |
NATR ((Records[High,Low,Close],Zeitrahmen = 14) = Array ((outReal) | |
- Das ist nicht nötig. | Wirkliche Reichweite |
(Durchschnittliche Anzahl der Werte, die für die Anzahl der Werte verwendet werden, die für die Anzahl der Werte verwendet werden) |
Overlap Studies
:
Indikator | Beschreibung |
---|---|
BBANDS | Bollinger-Bänder |
BBANDS ((Records[Close],Time Period = 5,Abweichungen nach oben = 2,Abweichungen nach unten = 2,MA Typ = 0) = [Array ((outRealUpperBand),Array ((outRealMiddleBand),Array ((outRealLowerBand) ] | |
DEMA | Doppel exponentieller gleitender Durchschnitt |
DEMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
EMA | Exponentieller gleitender Durchschnitt |
EMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
Der Wert des Zinssatzes ist zu messen | Hilbertsche Transform - Sofortige Trendlinie |
HT_TRENDLINE ((Records[Close]) = Array ((outReal) | |
KAMA | Kaufman Adaptiver gleitender Durchschnitt |
KAMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
- Nein. | Beweglicher Durchschnitt |
MA ((Records[Close],Zeitrahmen = 30,MA Typ = 0) = Array ((outReal) | |
Mutter | MESA Adaptiver gleitender Durchschnitt |
MAMA ((Records[Close],Fast Limit = 0.5,Slow Limit = 0.05) = [Array ((outMAMA),Array ((outFAMA) ] | |
Zwischenpunkt | Mittelpunkt der Periode |
MIDPOINT ((Records[Close],Zeitrahmen = 14) = Array ((outReal) | |
Mittelpreis | Mittelpunktpreis im Zeitraum |
MIDPRICE ((Records[High,Low],Zeitrahmen = 14) = Array ((outReal) | |
SAR | Parabolische SAR |
SAR ((Records[High,Low],Beschleunigungsfaktor = 0,02,AF Maximum = 0,2) = Array ((outReal) | |
SAREXT | Parabolische SAR - Erweiterung |
SAREXT ((Records[High,Low],Startwert = 0,Offset auf Reverse = 0,AF Init Long = 0.02,AF Long = 0.02,AF Max Long = 0.2,AF Init Short = 0.02,AF Short = 0.02,AF Max Short = 0.2) = Array ((outReal) | |
SMA | Einfacher gleitender Durchschnitt |
SMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
T3 | Dreifacher exponentieller gleitender Durchschnitt (T3) |
T3 ((Records[Close],Zeitrahmen = 5,Volumenfaktor = 0,7) = Array ((outReal) | |
TEMA | Dreifacher exponentieller gleitender Durchschnitt |
TEMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
Trima | Dreiecks gleitender Durchschnitt |
TRIMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) | |
WMA | Gewichteter gleitender Durchschnitt |
WMA ((Records[Close],Zeitrahmen = 30) = Array ((outReal) |
Statistic Functions
:
Indikator | Beschreibung |
---|---|
LINEARREG | Lineare Regression |
LINEARREG ((Records[Close],Zeitrahmen = 14) = Array ((outReal) | |
LINEARREG_ANGLE | Lineare Regressionswinkel |
LINEARREG_ANGLE ((Records[Close],Time Period = 14) = Array ((outReal)) | |
LINEARREG_INTERCEPT ist eine | Lineare Regressionsunterbrechung |
LINEARREG_INTERCEPT ((Records[Close],Time Period = 14) = Array ((outReal)) | |
LINEARREG_SLOPE | Lineare Regressionsneigung |
LINEARREG_SLOPE ((Records[Close],Time Period = 14) = Array ((outReal)) | |
STDDEV | Standardabweichung |
STDDEV ((Records[Close],Zeitrahmen = 5, Abweichungen = 1) = Array ((outReal) | |
TSF | Zeitreihenprognose |
TSF ((Records[Close],Zeitrahmen = 14) = Array ((outReal) | |
VAR | Abweichung |
VAR ((Records[Close],Zeitrahmen = 5,Abweichungen = 1) = Array ((outReal) |
Momentum Indicators
:
Indikator | Beschreibung |
---|---|
ADX | Durchschnittlicher Richtungsbewegungsindex |
ADX ((Records[High,Low,Close],Zeitrahmen = 14) = Array ((outReal) | |
ADXR | Durchschnittlicher Index der Richtungsbewegung |
ADXR ((Records[High,Low,Close],Time Period = 14) = Array ((outReal)) | |
Abweichend | Absolute Preis-Oszillator |
APO ((Records[Close],Fast Period = 12,Slow Period = 26,MA Typ = 0) = Array ((outReal) | |
AROON | Aroon |
AROON ((Records[High,Low],Time Period = 14) = [Array ((outAroonDown),Array ((outAroonUp) ] | |
AROONOSC | Aroon-Oszillator |
AROONOSC ((Records[High,Low],Zeitrahmen = 14) = Array ((outReal) | |
BOP | Machtgleichgewicht |
BOP ((Records[Open,High,Low,Close]) = Array ((outReal)) | |
CCI | Index der Warenkanäle |
CCI ((Records[High,Low,Close],Zeitrahmen = 14) = Array ((outReal) | |
Gemeinsame Marktorganisation | Chande-Impuls-Oszillator |
CMO ((Records[Close],Zeitrahmen = 14) = Array ((outReal) | |
DX | Richtungsbewegungsindex |
DX ((Records[High,Low,Close],Zeitrahmen = 14) = Array ((outReal) | |
MACD | Gleitender Durchschnitt Konvergenz/Divergenz |
MACD ((Records[Close],Fast Period = 12,Slow Period = 26,Signal Period = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ] | |
MACDEXT | MACD mit kontrollierbarem MA-Typ |
MACDEXT ((Records[Close],Fast Period = 12,Fast MA = 0,Slow Period = 26,Slow MA = 0,Signal Period = 9,Signal MA = 0) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ] | |
MACDFIX | Beweglicher Durchschnittskonvergenz/Divergenzfix 12/26 |
MACDFIX ((Records[Close],Signal Period = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ] | |
MFI | Geldflussindex |
MFI ((Records[High,Low,Close,Volume],Zeitrahmen = 14) = Array ((outReal) | |
MINUS_DI | Minus Richtungsanzeige |
MINUS_DI(Records[High,Low,Close],Zeitperiode = 14) = Array ((outReal) | |
MINUS_DM | Minus Richtungsbewegung |
MINUS_DM ((Records[High,Low],Zeitperiode = 14) = Array ((outReal) | |
Mutter! | Momentum |
MOM ((Records[Close],Zeitrahmen = 10) = Array ((outReal) | |
PLUS_DI | Plus-Richtungsanzeiger |
PLUS_DI ((Records[High,Low,Close],Zeitperiode = 14) = Array ((outReal) | |
PLUS_DM | Zusätzliche Richtungsbewegung |
PLUS_DM ((Records[High,Low],Zeitperiode = 14) = Array ((outReal) | |
PPO | Prozentualer Preis-Oszillator |
PPO ((Records[Close],Fast Period = 12,Slow Period = 26,MA Typ = 0) = Array ((outReal) | |
ROC | Veränderungsrate: ((Preis/PrevPrice) -1) *100 |
ROC ((Records[Close],Zeitrahmen = 10) = Array ((outReal) | |
ROCP | Wechselkurs Prozentsatz: (Preis-vorpreis) /vorpreis |
ROCP ((Records[Close],Zeitrahmen = 10) = Array ((outReal) | |
ROCR | Wechselkursverhältnis: (Preis/PrevPrice) |
ROCR ((Records[Close],Zeitrahmen = 10) = Array ((outReal) | |
ROCR100 | Wechselkursverhältnis 100 Skala: (Preis/PrevPrice) *100 |
ROCR100 ((Records[Close],Zeitrahmen = 10) = Array ((outReal) | |
RSI | Relativer Stärkeindex |
RSI ((Records[Close],Zeitrahmen = 14) = Array ((outReal) | |
STOCH | Stochastische |
STOCH ((Records[High,Low,Close],Fast-K Period = 5,Slow-K Period = 3,Slow-K MA = 0,Slow-D Period = 3,Slow-D MA = 0) = [Array(outSlowK),Array(outSlowD] | |
STOCHF | Stochastisch schnell |
STOCHF ((Records[High,Low,Close],Fast-K Period = 5,Fast-D Period = 3,Fast-D MA = 0) = [Array(outFastK),Array(outFastD] | |
Stochrs | Stochastic Relative Strength Index |
STOCHRSI ((Records[Close],Zeitperiode = 14,Fast-K Periode = 5,Fast-D Periode = 3,Fast-D MA = 0) = [Array(outFastK),Array(outFastD] | |
TRIX | Ein-Tage-Rate-Of-Change (ROC) einer dreifachen glatten EMA |
TRIX ((Records[Close],Zeitperiode = 30) = Array ((outReal) | |
ULTOSC | Endgültiger Oszillator |
ULTOSC ((Records[High,Low,Close],Erste Periode = 7,Zweite Periode = 14,Dritte Periode = 28) = Array ((outReal) | |
WILLR | Williams |
WILLR(Records[High,Low,Close],Zeitperiode = 14) = Array(outReal) |
Price Transform
:
Indikator | Beschreibung |
---|---|
AVGPRICE | Durchschnittlicher Preis |
AVGPRICE ((Records[Open,High,Low,Close]) = Array ((outReal) | |
MEDPRICE | Durchschnittlicher Preis |
MEDPRICE ((Records[High,Low]) = Array ((outReal) | |
TYPE-Preis | Typischer Preis |
TYPPRICE ((Records[High,Low,Close]) = Array ((outReal) | |
WCLPRICE | Gewichteter Schlusskurs |
WCLPRICE ((Records[High,Low,Close]) = Array ((outReal) |
Die FMZ Quant Trading Plattform unterstützt das Backtesting und Abfragen verschiedener fundamentaler Daten im Bot.
Verwendungexchange.GetData(Source)
Funktion, um die Grunddaten zu erhalten.
Die grundlegenden Daten der Kryptowährung wurden nicht vorübergehend gesammelt.
Die grundlegenden Daten der Kryptowährung wurden nicht vorübergehend gesammelt.
Die FMZ Quant Trading-Plattform unterstützt die programmatische Invokation verschiedener Funktionen der Plattform und hat die erweiterte API eröffnet.
Es unterstützt die Erweiterung API Authority Management, wie in der Abbildung gezeigt:
Es erlaubt die neu hinzugefügtenAPI KEY
Sie haben alle Berechtigungen.*
in das Eingabefeld API-Berechtigungen, um alle Benutzeroberflächenberechtigungen zu öffnen. Geben Sie spezifische Benutzeroberflächenberechtigungen an und geben Sie die entsprechenden erweiterten API-Funktionsnamen ein, die durch Kommas getrennt sind, z. B.GetRobotDetail, DeleteRobot
Das heißt, gib mir das hier.API KEY
die Erlaubnis zurErhalten Sie die Schnittstelle des Bots detaillierte InformationenundSchnittstelle des Bots löschen.
Beschreibung | Code |
---|---|
Erfolgreiche Ausführung | 0 |
Falscher API-Schlüssel | 1 |
Falsche Unterschrift | 2 |
Nicht-Fehler | 3 |
Falsche Methode | 4 |
Falscher Parameter | 5 |
Interner unbekannter Fehler | 6 |
(Normaler Start)
Status | Code |
---|---|
Inaktivität | 0 |
In Betrieb | 1 |
Aufhören | 2 |
Ausgeschrieben | 3 |
Aufgehalten | 4 |
Die Strategie hat Fehler. | 5 |
(abnormal)
Status | Code |
---|---|
Die Strategie ist abgelaufen, und bitte kontaktieren Sie den Autor, um es wieder zu kaufen | -1 |
Kein Docker gefunden | -2 |
Fehler bei der Kompilierung der Strategie | -3 |
Der Bot läuft bereits. | -4 |
Unzureichende Bilanz | -5 |
Die Anzahl der gleichzeitigen Strategien überschreitet die Grenze | -6 |
Verwendungmd5
Verschlüsselungsmethode zu überprüfen.
Python, Golang Sprache Anrufbeispiele:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
try:
import md5
import urllib2
from urllib import urlencode
except:
import hashlib as md5
import urllib.request as urllib2
from urllib.parse import urlencode
accessKey = 'f27bfcXXXXXXXX013c62e98XXXXX817a'
secretKey = 'ffeXXXXXXXX085ff7269XXXXXXXX6f82'
def api(method, *args):
d = {
'version': '1.0',
'access_key': accessKey,
'method': method,
'args': json.dumps(list(args)),
'nonce': int(time.time() * 1000),
}
d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
# Note: for the timeout problem of "urllib2.urlopen" function, you can set the timeout time; for example, urllib2.urlopen ('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8'), timeout = 10), that is, set timeout for 10 seconds
return json.loads(urllib2.urlopen('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8')).read().decode('utf-8'))
# Return the docker list
print(api('GetNodeList'))
# Return the exchange list
print(api('GetPlatformList'))
# GetRobotList (offset, length, robotStatus, label); passing "-1" means obtaining all
print(api('GetRobotList', 0, 5, -1, 'member2'))
# CommandRobot(robotId, cmd) sends commands to the bot
print(api('CommandRobot', 123, 'ok'))
# StopRobot(robotId) returns the bot status code
print(api('StopRobot', 123))
# RestartRobot(robotId) returns the bot status code
print(api('RestartRobot', 123))
# GetRobotDetail(robotId) returns detailed bot information
print(api('GetRobotDetail', 123))
package main
import (
"fmt"
"time"
"encoding/json"
"crypto/md5"
"encoding/hex"
"net/http"
"io/ioutil"
"strconv"
"net/url"
)
// Fill in your own FMZ platform api key
var apiKey string = ""
// Fill in your own FMZ platform secret key
var secretKey string = ""
var baseApi string = "https://www.fmz.com/api/v1"
func api(method string, args ... interface{}) (ret interface{}) {
// Process args
jsonStr, err := json.Marshal(args)
if err != nil {
panic(err)
}
params := map[string]string{
"version" : "1.0",
"access_key" : apiKey,
"method" : method,
"args" : string(jsonStr),
"nonce" : strconv.FormatInt(time.Now().UnixNano() / 1e6, 10),
}
data := fmt.Sprintf("%s|%s|%s|%v|%s", params["version"], params["method"], params["args"], params["nonce"], secretKey)
h := md5.New()
h.Write([]byte(data))
sign := h.Sum(nil)
params["sign"] = hex.EncodeToString(sign)
// http request
client := &http.Client{}
// request
urlValue := url.Values{}
for k, v := range params {
urlValue.Add(k, v)
}
urlStr := urlValue.Encode()
request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
if err != nil {
panic(err)
}
resp, err := client.Do(request)
if err != nil {
panic(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
ret = string(b)
return
}
func main() {
settings := map[string]interface{}{
"name": "hedge test",
"strategy": 104150,
// K-line period parameter "60" means 60 seconds
"period": 60,
"node" : 73938,
"appid": "member2",
"exchanges": []interface{}{
map[string]interface{}{
"eid": "Exchange",
"label" : "test_bjex",
"pair": "BTC_USDT",
"meta" : map[string]interface{}{
// Fill in the access key
"AccessKey": "",
// Fill in the secret key
"SecretKey": "",
"Front" : "http://127.0.0.1:6666/exchange",
},
},
},
}
method := "RestartRobot"
fmt.Println("Call interface:", method)
ret := api(method, 124577, settings)
fmt.Println("main ret:", ret)
}
Es unterstützt die Überprüfung ohnetoken
(übergeben)secret_key
Sie können eine URL generieren, die direkt zugänglich ist. Zum Beispiel die URL, die direkt interaktive Anweisungen an den Bot gibt, die fürTradingView
oder derWebHook
in anderen Fällen zurückrufen.
FürCommandRobot(RobotId, Cmd)
Funktion, der Parameternonce
keine Überprüfung erfordert und die Zugriffsfrequenz und die Besuchszeiten der Schnittstelle nicht begrenzt sind.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
Unter der Voraussetzung, daß die direkte Prüfung unterstützt wird,CommandRobot
Interface wird unterstützt, um dieBody
Die Daten in der Anfrage.WebHook URL
vonTradingView
:
https://www.fmz.com/api/v1?access_key=fd3be82e9e6e6ed4439f2793a5e9ca&secret_key=520b9f10f3768e6ad1af59ff25184&method=CommandRobot&args=[130350,+""]
Achten Sie auf die Einstellung nach folgendem Format:args=[130350,+""]
, in denen130350
ist der BotID
der FMZ Quant Trading Plattform.
Einstellungen im Nachrichtenfeld (die angeforderten
JSON-Format
{"close": {{close}}, "name": "aaa"}
Der Roboter mitID
von186515
kann die interaktive Anweisung erhalten:{"close": 39773.75, "name": "aaa"}
.
Textformat:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
Der Roboter mitID
von186515
kann die interaktive Anweisung erhalten:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Beispiele fürPython
& Golang
Sprachanrufe:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
try:
import urllib2
except:
import urllib.request as urllib2
accessKey = 'your accessKey'
secretKey = 'your secretKey'
def api(method, *args):
return json.loads(urllib2.urlopen(('https://www.fmz.com/api/v1?access_key=%s&secret_key=%s&method=%s&args=%s' % (accessKey, secretKey, method, json.dumps(list(args)))).replace(' ', '')).read().decode('utf-8'))
# If APIKEY does not have the interface permission, the call to print(api('RestartRobot', 130350)) will fail, and the returned data is: {'code': 4, 'data': None}
# print(api('RestartRobot', 130350))
# Print bot details with ID 130350
print(api('GetRobotDetail', 130350))
package main
import (
"fmt"
"encoding/json"
"net/http"
"io/ioutil"
"net/url"
)
// Fill in your own FMZ platform api key
var apiKey string = "your access_key"
// Fill in your own FMZ platform secret key
var secretKey string = "your secret_key"
var baseApi string = "https://www.fmz.com/api/v1"
func api(method string, args ... interface{}) (ret interface{}) {
jsonStr, err := json.Marshal(args)
if err != nil {
panic(err)
}
params := map[string]string{
"access_key" : apiKey,
"secret_key" : secretKey,
"method" : method,
"args" : string(jsonStr),
}
// http request
client := &http.Client{}
// request
urlValue := url.Values{}
for k, v := range params {
urlValue.Add(k, v)
}
urlStr := urlValue.Encode()
request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
if err != nil {
panic(err)
}
resp, err := client.Do(request)
if err != nil {
panic(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
ret = string(b)
return
}
func main() {
method := "GetRobotDetail"
fmt.Println("Call interface:", method)
ret := api(method, 130350)
fmt.Println("main ret:", ret)
}
Verwenden Sie die erweiterte API auf FMZ Quant, um
Die erweiterte API der FMZ Quant Trading Plattform
https://www.fmz.com/api/v1?
Das obige Symbol?
wird von den Anforderungsparametern gefolgt.
Die inPython
Sprache:
{
'version' : '1.0',
# Access key, applied on the account management page
'access_key': '8a1f6c3785fd78a1848320e0b19js99f',
# The specific method called
'method' : 'GetNodeList',
# The parameter list of specific method algorithm
'args' : [],
# Timestamp, in the unit of millisecond, is allowed to have 1 hour of time error both before and after the standard timestamp;the nonce must be greater than the nonce value of the last access
'nonce' : 1516292399361,
# Signature
'sign' : '085b63456c93hfb243a757366600f9c2'
}
Jeder Parametername wird durch das Zeichen getrennt&
, und die Parameternamen und -werte sind mit dem Symbol verbunden=
. Die vollständige Anfrage-URL (mitmethod=GetNodeList
zum Beispiel):
https://www.fmz.com/api/v1?
access_key=8a1f6c3785fd78a1848320e0b19js99f&
nonce=1516292399361&
args=%5B%5D&
sign=085b63456c93hfb243a757366600f9c2&
version=1.0&
method=GetNodeList
Achten Sie darauf, dass es keinesecret_key
zwischen den Anforderungsparametern.
Signaturmethode
In den Anforderungsparametern wird der Parametersign
ist eine verschlüsselte Zeichenfolge, und die Verschlüsselungsmethode ist wie folgt.
Nach dem Format:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
Nachdem Sie die Zeichenketten verbunden haben, verwenden SieMD5Verschlüsselungsalgorithmus zur Verschlüsselung der Zeichenfolge und Umwandlung in einen hexadezimalen Datenzeichenwert, der als Parameterwert bezeichnet wirdsign
.
Die BezugnahmePython
Code des Signaturteils:
# parameter
d = {
'version': '1.0',
'access_key': accessKey,
'method': method,
'args': json.dumps(list(args)),
'nonce': int(time.time() * 1000),
}
# Calculate "sign" signature (encrypted)
d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
GetNodeList()
Gibt die Dockerliste des FMZ Quant Trading-Plattformkontos zurück, die demAPI KEY
in der Anfrage.
Parameter Keine
Rücklaufwert
{
"code": 0,
"data": {
"result": {
"nodes": [{
// Version number
"build": "3.3",
"date": "2018-01-19 10:35:24",
"id": 34500,
"ip": "126.28.21.120",
// Number of the bots running on this docker
"loaded": 1,
"name": "iZ9116xhkgtZ",
// Whether online
"online": true,
// Operation system
"os": "linux",
// Whether to enable offline alert
"wd": 0
},
...
]
},
"error": null
}
}
GetRobotGroupList()
gibt die Bot-Gruppierungsliste des FMZ Quant Trading-Plattformkontos zurück, die demAPI KEY
in der Anfrage.
Parameter Keine
Rücklaufwert
{
"code":0,
"data":{
"result":{
// All bot grouping information: group ID, group name
"items":[{"id":1122,"name":"test"}]
},
"error":null
}
}
GetPlatformList()
gibt die Liste der Börsen zurück, die durch das Konto der FMZ Quant Trading Plattform hinzugefügt wurden, die demAPI KEY
in der Anfrage.
Parameter Keine
Rücklaufwert
{
"code": 0,
"data": {
"result": {
"platforms": [{
"eid": "Huobi",
"id": 12483,
// The label when adding a platform
"label": "huobi - test ETH/ETC",
"logo": "huobi.png",
"name": "huobi",
"stocks": ["LTC_BTC", "ETH_BTC", "ETC_BTC", "BCH_BTC"],
"website": "https://www.huobi.pro/"
}, {
"eid": "AEX",
"id": 16345,
"label": "AEX",
"logo": "",
"name": "AEX",
"stocks": ["LTC_BTC", "ETH_BTC", "ETC_BTC", "BCC_BTC"],
"website": "https://www.aex.com/"
},
...
]
},
"error": null
}
}
GetRobotList(offset, length, robotStatus, label)
Gibt die Roboterliste des Kontos der FMZ Quant Trading Plattform zurück, die derAPI KEY
in der Anfrage.
Parameteroffset
, length
undrobotStatus
sind von ganzzahligem Typ undlabel
ist der Stringart.
offset
length
robotStatus
(Überschreiten label
(Einmaliges Etikett; alle Bots mit dem Etikett können ausflirtet werden)FürPython
Codebeispiel, siehe obenÜberprüfungsmethode - Überprüfung von Token, und folgt diePython
Einladungsbeispiel:print api('GetRobotList', 'member2')
Drucken Sie die Informationen aller Roboter mit dem benutzerdefinierten Etikettmember2
.
print api('GetRobotList', 0, 5, -1, 'member2')
Seite 0 bis 5 und eine Liste von bis zu 5 Robotern mitmember2
.
Rücklaufwert
{
"code": 0,
"data": {
"result": {
"all": 53,
"bots": [{
"date": "2017-12-25 09:29:27",
"end_time": "2017-12-28 17:44:21",
"id": 66054,
// If the value is 1, the bot is a virtual platform bot
"is_sandbox": 1,
"name": "C++ test strategy",
"node_guid": "705d9aaaaaaaa93b49baaaaa787581cb087",
"profit": 0,
"public": 0,
"refresh": 151345645647000,
"start_time": "2017-12-28 17:44:15",
"status": 3,
"strategy_id": 65365,
"strategy_isowner": true,
"strategy_name": "C++ Version Docker API Test Strategy(cryptocurrency futures and spot markets)",
"wd": 0
}, ...
]
},
"error": null
}
}
CommandRobot(RobotId, Cmd)
Die Schnittstelle sendet den interaktiven Befehl an den entsprechenden Roboter (Roboter)ID
: RobotId
) derAPI KEY
in der Anfrage des FMZ Quant-Kontos (der interaktive Befehl wird vomGetCommand()
API in die Strategie aufgerufen und zurückkehrt).
ParameterRobotId
ist von ganzzahligem Typ, nämlich der BotID
; Cmd
ist von String-Typ, der interaktive Befehle an Bots sendet.
RobotId
Der Roboter.ID
, kann durch dieGetRobotList(...)
interface.Cmd
ist der interaktive Befehl, der an den Bot gesendet wird; der Befehl wird von der Funktion erfasstGetCommand()
, die die interaktive Logik in der Strategie auslöst (um die interaktive Logik inGetCommand()
Funktion in der Akte).Rücklaufwert
{
// The API request was successfully executed
"code": 0,
"data": {
// However, sending a command to a bot that is not running returns failure
"result": false,
"error": null
}
}
StopRobot(RobotId)
Stoppt die Ausführung des Bots mit der angegebenen ID (Roboter)ID
: RobotId
), die demAPI KEY
in der Anforderung des FMZ Quant-Kontos.
ParameterRobotId
ist von ganzzahligem Typ, nämlich der BotID
, die durchGetRobotList(...)
Schnittstelle;StopRobot(RobotId)
Die Schnittstelle gibt den Statuscode des gestoppten Roboters zurück.
Rücklaufwert
{
"code": 0,
"data": {
// 2 means stopping
"result": 2,
"error": null
}
}
RestartRobot(RobotId, Settings)
Der Roboter wird mit der angegebenen ID (Roboter) neu gestartet.ID
: RobotId
), die demAPI KEY
in der Anforderung des FMZ Quant-Kontos.
Wenn der Roboter durch die erweiterte API erstellt wird, wird die erweiterte APIRestartRobot (RobotId, Settings)
Die Anlage muss für den Neustart verwendet werden, und dieSettings
Parameter muss übergeben werden.
Der auf der Plattformseite erstellte Roboter kann über die erweiterte API oder durch Klicken auf die Taste auf der Seite neu gestartet werden.Settings
Parameter, oder einfach nur die dieRobotId
Wenn Sie nur dieRobotId
Parameter, starten Sie den Bot nach den aktuellen Bot-Einstellungen.
Parameter
Ohne die Konfiguration des Bots, die Strategie ParameterSettings
:
RobotId
ist von ganzzahligem Typ; der RoboterID
kann durchGetRobotList(...)
.
Mit der Konfiguration des Bots, die Strategie ParameterSettings
:
RobotId
ist von ganzzahligem Typ; der BotID
kann durchGetRobotList(...)
.
Settings
ist vonJSON
Objekttyp.
Settings
Parameterformat wie folgt:
Settings = {
"name": "hedge test",
// Strategy parameter
"args": [["Interval", 500]],
// Strategy ID, which can be obtained with "GetStrategyList" method
"strategy": 25189,
// K-line period parameter "60" means 60 seconds
"period": 60,
// Specify on which docker to run; if the attribute is not written, it will be automatically assigned to run
"node" : 51924,
// Custom field
"appid": "member2",
"exchanges": [
// ZB; "pid" can be obtained by "GetPlatformList" method
{"pid": 15445, "pair": "ETH_BTC"},
// OKEX; 2 exchange objects are configured
{"pid": 13802, "pair": "BCH_BTC"},
// In addition to the platforms ("pid" identification) configured by the FMZ dashboard, you can also set exchange configuration information that has not been configured to operate the bot
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}}
]
}
Anmerkung:
Wenn Sie die sensiblen Informationen verwenden, wie zum Beispiel die PlattformAPI KEY
, einschließlich"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
in der Konfiguration voneid
, sollten Sie wissen, dass FMZ die Daten nicht speichert. Die Daten werden direkt an das Docker-Programm gesendet, so dass diese Informationen jedes Mal konfiguriert werden müssen, wenn der Bot erstellt oder neu gestartet wird.
Um den Bot neu zu starten, der das Plugin verwendet, um den Austausch zu unterstützen, wenn Sie dieSettings
Sie sollten die folgenden Einstellungen für dieexchanges
Eigenschaft:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
Attribut ist, um ein Etikett für das Exchange-Objekt zu setzen, auf das der aktuelleAllgemeines Protokoll, die durch dieexchange.GetLabel()
die Rolle der Kommission in der Strategie.
Rücklaufwert
{
"code": 0,
"data": {
// 1 means running
"result": 1,
"error": null
}
}
GetRobotDetail(RobotId)
Erhält die detaillierten Informationen über den Roboter mit der angegebenen ID (robotID
: RobotId
), die demAPI KEY
auf Anfrage des Kontos der FMZ Quant Trading Plattform.
ParameterRobotId
ist von ganzzahligem Typ; der RoboterID
kann durchGetRobotList(...)
.
Rücklaufwert
{
"code": 0,
"data": {
"result": {
"robot": {
// Next payment time, namely the effective cut-off time after the current payment
"charge_time": 1561992608,
// Elapsed Time
"charged": 3600,
// Amount consumed (0.125 CNY = 12500000 / 1e8)
"consumed": 12500000,
"date": "2019-07-01 21:50:08",
"debug": "{\"Nano\":1561989722431145193,\"Stderr\":\"\",\"Stdout\":\"\"}",
// Stop time
"end_time": "2019-07-01 22:02:02",
// The docker ID assigned when the robot is running; if it is automatic, the value is -1
"fixed_id": 85960,
"id": 150288,
"is_deleted": 0,
// Whether it has the permission to manage the bot
"is_manager": true,
// Whether it is virtual exchange
"is_sandbox": 0,
// Robot name
"name": "Spread monitoring2",
// Docker ID
"node_id": 85960,
// The exchange objects configured by the robot
"pexchanges": {
// 14703 is eid, and "GateIO" is exchange name
"14703": "GateIO",
"15445": "ZB",
"42960": "OKEX",
"44314": "Huobi"
},
// label information of the exchange object configured by the robot
"plabels": {
"14703": "Gate.IO (old name: BTER)",
"15445": "ZB",
"42960": "OKEX spot V3 test",
"44314": "Huobi - newest test"
},
"profit": 0,
// Whether to show public
"public": 0,
// Recent active time
"refresh": 1561989724000,
"robot_args": "[[\"TickInterval\",500],[\"StrOnePair\",\"spot:Huobi:spot;spot:OKEX:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"spot:ZB:spot;spot:GateIO:spot;false;60;5;0;0\"],[\"StrThreePair\",\"null\"],[\"StrFourPair\",\"null\"],[\"StrSixPair\",\"null\"],[\"StrFivePair\",\"null\"],[\"ResetChart\",false]]",
"start_time": "2019-07-01 22:00:54",
// Robot status
"status": 4,
"strategy_args": "[[\"TickInterval\",\"Detection frequency (ms)\",\"This is millisecond. Don't set it too small.\",500],[\"StrOnePair\",\"Combination1\",\"Spread Combination\",\"spot:Huobi:spot;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"Combination2\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrThreePair\",\"Combination3\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;future:Futures_OKCoin:quarter;true;60;5;0;0\"],[\"StrFourPair\",\"Combination4\",\"Spread Combination\",\"null\"],[\"StrSixPair\",\"Combination6\",\"Combination\",\"null\"],[\"StrFivePair\",\"Combination5\",\"Combination\",\"null\"],[\"ResetChart\",\"whether to clear the previous chart\",\"clear the previous chart\",false]]",
// Configured exchange objects, set trading pair information
"strategy_exchange_pairs": "[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]",
// Strategy ID
"strategy_id": 21337,
// Strategy's last modification time
"strategy_last_modified": "2018-11-29 12:07:58",
// Strategy name
"strategy_name": "Digital currency spread monitoring and analysis",
"summary": "Polling time consuming: 500ms\n`[{\"type\":\"table\",\"title\":\"pair basic data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"UpdCycle\",\"isUSD\",\"Collect\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",60,false,\"612ms\"],[\"1 \",\"ZB/GateIO\",\"spot/spot\",60,false,\"501ms\"]]},{\"type\":\"table\",\"title\":\"pair market data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"A_Bids1\",\"B_Asks1\",\"Plus\",\"A_Asks1\",\"B_Bids1\",\"Minus\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",10518.02,10525.1,-7.08,10520,10523,-3],[\"1 \",\"ZB/GateIO\",\"spot/spot\",285.68,286,-0.32,285.8,285.85,-0.05]]},{\"type\":\"table\",\"title\":\"pair statistical data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"Maximum spread\",\"Minimum spread\",\"Mean positive premium\",\"Mean negative premium\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",0,-3,0,-1.47],[\"1 \",\"ZB/GateIO\",\"spot/spot\",0.03,-0.05,0.03,-0.05]]}]`\n",
// Whether to enable offline alert
"wd": 0
}
},
"error": null
}
}
Diesummary
Das Attribut in den zurückgegebenen Daten (Informationen in der Statusleiste des Bots; 10 Sekunden lang zwischengespeichert; nicht die neuesten Daten) hat derzeit eine Datenmenge (zwischengespeicherte Daten); die Datenmenge beträgt 200 KB, und die überschüssigen Daten werden abgeschnitten.GetRobotLogs
Schnittstelle zu erhalten (wennGetRobotLogs
Erhält die Informationen der Statusleiste, das Feldsummary
ist die jüngste Daten).
Die Attributbeschreibung vonstrategy_exchange_pairs
, nehmen wir beispielsweise folgende Daten:
[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]
Die ersten Daten60
stellt die von dem Bot eingestellte Standard-K-Linien-Periode dar: 1 Minute, also 60 Sekunden.
[44314,42960,15445,14703]
ist das Austauschobjekteid
für den Bot konfiguriert (nach der Additionsreihenfolge).[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
ist das Handelspaar für das vom Bot konfigurierte Tauschobjekt (in der Reihenfolge der Addition und in einer Eins-zu-Eins-Korrespondenz miteid
).
GetAccount()
gibt die Kontoinformationen zurück, die derAPI KEY
auf Anfrage des Kontos der FMZ Quant Trading Plattform.
Parameter Keine
Rücklaufwert
{
"code": 0,
"data": {
"result": {
"username": "littlelittledream",
"level": 0,
"consumed": 3235500000,
"invitation_code": "1545967",
"points": 25,
// The value here, due to precision control, is expressed in integer. To convert it to actual value, you need to divide it by 1e8 (i.e. 10 to the 8th power), and the actual result here is: 65.421
"balance": 6542100000
},
"error": None
}
}