// 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++
библиотекаhttps://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() + "`");
}
Среди параметров следующих функций:Records[Close]
представляет собой цену закрытия в поступающих данных k-линии,Array()
представляет собой массив, иArray(outInteger)
представляет собой возвращение массива целых данных.
Пример кода для вызоваCCI
показатель:
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
:
Показатель | Описание |
---|---|
CDL2CROWS | Две вороны |
CDL2CROWS ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целого) | |
CDL3ЧЕРНЫЕ КРОВЫ | Три чёрных вороны |
CDL3BLACKCROWS ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDL3 Внутри | Три внутри вверх/вниз |
CDL3INSIDE ((Записи[Open,High,Low,Close]) = Массив ((outInteger) | |
CDL3LINESTRIKE | Трехлинейный удар |
CDL3LINESTRIKE ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDL3ВНЗ | Три снаружи вверх/вниз |
CDL3OUTSIDE ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDL3ЗвездаЮжный | Три звезды на юге |
CDL3STARSINSOUTH ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDL3 белые солдаты | Три белых солдата |
CDL3WHITESOLDIERS ((Записи [Открыть,высокий,низкий,близкий]) = Массив ((неполный) | |
CDLABANDONEDBABY - "Оставленный ребенок" | Заброшенный ребенок |
CDLABANDONEDBABY ((Рекорд[Open,High,Low,Close],Penetration = 0.3) = Array ((outInteger) | |
CDLADVANCEBLOCK | Предварительный блок |
CDLADVANCEBLOCK ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLBELTHOLD | Держите ремень |
CDLBELTHOLD ((Записи[Открыть,высокий,низкий,закрыть]) = Массив ((выйти целый) | |
CDLBRAKAWAY (отрыв) | Отступление |
CDLBREAKAWAY ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLCLOSING Марубозу | Закрытие Марубозу |
CDLCLOSINGMARUBOZU ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((выйтиInteger) | |
CDLCONCEALBABYSWALL (Скрытый ребенок) | Скрытие ласточки |
CDLCONCEALBABYSWALL ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLКонтрнаступление | Контрнаступление. |
CDLCOUNTERATTACK ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLDARKCLOUDCOVER | Темная облачная покровка |
CDLDARKCLOUDCOVER ((Записи [Открыть,высокий,низкий,близкий],проникновение = 0,5) = массив ((выйти целое число) | |
CDLDOJI | Додзи |
CDLDOJI ((Записи[Открыть,высокий,низкий,закрыть]) = Массив ((неполный) | |
CDLDOJISTAR | Звезда Додзи |
CDLDOJISTAR ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целый) | |
CDLDRAGONFLYDOJI (Драконовый летящий) | Додзи - воробьи |
CDLDRAGONFLYDOJI ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целый) | |
СДЛЕНГУЛФИРОВАНИЕ | Поглощающая модель |
CDLENGULFING ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
СДЛЕВЕНИНГДОЖИСТАР | Вечерняя звезда Доджи |
CDLEVENINGDOJISTAR ((Записи [Open,High,Low,Close],Penetration = 0.3) = Array ((outInteger) | |
CDLEVENINGSTAR | Вечерняя звезда |
CDLEVENINGSTAR ((Записи [Open,High,Low,Close],Penetration = 0.3) = Array ((outInteger) | |
CDLГАПСИДESIDEбелый | Белые линии с разрывом вверх/вниз |
CDLGAPSIDESIDESWHITE ((Записи [Открыть,высокий,низкий,закрыть]) = Массив ((выйтиInteger) | |
CDLGRAVESTONEDOJI | Могильный камень Доджи |
CDLGRAVESTONEDOJI ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((выйтиInteger) | |
CDLHAMMER | Молот |
CDLHAMMER ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
Сидлхангингмен | Повеситель |
CDLHANGINGMAN ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLHARAMI | Харами-образ |
CDLHARAMI ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целых) | |
CDLHARAMICROSS | Харами кросс-паттерн |
CDLHARAMICROSS ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
CDHIGHWAVE | Свеча с высокими волнами |
CDLHIGHWAVE ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
Сидлхиккаке | Образец хиккаке |
CDLHIKKAKE ((Записи [Открыть, Высокий, Низкий, Закрыть]) = Массив ((из Целый) | |
CDLHIKKAKEMOD (в переводе с английского) | Модифицированный рисунок хиккаке |
CDLHIKKAKEMOD ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((outInteger) | |
CDLHOMINGPIGEON | Голубь-командир |
CDLHOMINGPIGEON ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLIDENTICAL3CROWS - это я. | Одинаковые три вороны |
CDLIDENTICAL3CROWS ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLINNECK | Узоры на шее |
CDLINNECK ((Записи[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLINVERTEDHAMMER | Перекрученный молоток |
CDLINVERTEDHAMMER ((Рекордс[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLKICKING | Пинает. |
CDLKICKING ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLKICKKINGBYLENGTH (Должина клика) | Удар - бык/медведь, определяемый более длинным марубозу |
CDLKICKINGBYLENGTH ((Записи [Открыть,высокий,низкий,близкий]) = Массив ((включительно) | |
CDLLADERBOTTOM | Нижняя часть лестницы |
CDLLADDERBOTTOM ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLLONGLEGGEDDOJI (в переводе с английского) | Длинноногий додж |
CDLLONGLEGGEDDOJI ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целый) | |
CDLLONGLINE | Свеча длинной линии |
CDLLONGLINE ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLMARUBOZU | Марубозу |
CDLMARUBOZU ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целых) | |
CDLMATCHINGLOW | Совпадение низкое |
CDLMATCHINGLOW ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целых) | |
CDLMATHOLD | Поддержка матки |
CDLMATHOLD ((Рекорд[Open,High,Low,Close],Penetration = 0.5) = Array ((outInteger) | |
CDMORNINGDOJISTAR - " Утренняя звезда " | Утренняя звезда Доджи |
CDLMORNINGDOJISTAR ((Записи [Открыть,высокий,низкий,близкий],проникновение = 0,3) = массив ((выход Целый) | |
CDLMORNINGSTAR | Утренняя звезда |
CDLMORNINGSTAR ((Рекорд[Open,High,Low,Close],Penetration = 0.3) = Array ((outInteger) | |
CDLONNECK | Узоры на шее |
CDLONNECK ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
ПРИЗНАНИЕ | Пробивающий образец |
CDLPIERCING ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLRICKSHAWMAN (помощник по производству) | Человек с рикшей |
CDLRICKSHAWMAN ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLRISEFALL3МЕТОДЫ | Три метода повышения/снижения |
CDLRISEFALL3METHODS ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целого числа) | |
Разделяющие линии | Линии разделения |
CDLSEPARATINGLINES ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLSHOOTINGSTAR | Спускающаяся звезда |
CDLSHOOTINGSTAR ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLSORTLINE | Свеча короткой линии |
CDLSHORTLINE ((Записи[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLSPINNINGTOP | Свинцовая вершина |
CDLSPINNINGTOP ((Рекорд[Открыть,высокий,низкий,закрыть]) = массив ((выполнители) | |
CDLSTALLEDPATTERN | Невыполненный процесс |
CDLSTALLEDPATTERN ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLSTICKSANDWICH (Сандук с клетками) | Сэндвич с палочкой |
CDLSTICKSANDWICH ((Рекорд[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLTAKURI | Такури (Доджи-драконьица с очень длинной нижней тенью) |
CDLTAKURI ((Записи[Открыть,высокий,низкий,близкий]) = Массив ((неполный) | |
CDLTASUKIGAP | Разрыв Тасуки |
CDLTASUKIGAP ((Записи[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLTHRUSTING | Зажигательный образ |
CDLTHRUSTING ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((outInteger) | |
CDLTRISTAR | Тристарный шаблон |
CDLTRISTAR ((Записи[Open,High,Low,Close]) = Массив ((outInteger) | |
CDLUNIQUE3RIVER | Уникальная река 3 |
CDLUNIQUE3RIVER ((Записи [Open,High,Low,Close]) = Массив ((outInteger) | |
CDLUPSIDEGAP2CROWS (включает в себя: | Разрыв вверх два ворона |
CDLUPSIDEGAP2CROWS ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((из Целых) | |
CDLXSIDEGAP3МЕТОДЫ | Разрыв в цене вверх/вниз Три метода |
CDLXSIDEGAP3METHODS ((Записи [Открыть, Высокий, Нижний, Закрыть]) = Массив ((outInteger) |
Volume Indicators
:
Показатель | Описание |
---|---|
AD | Линия A/D Chaikin |
AD ((Записи[высокий, низкий, близкий, объем]) = Массив ((outReal) | |
ADOSC | Осиллятор Chaikin A/D |
ADOSC ((Рекорды[Высокий, низкий, близкий, объем],быстрый период = 3,медленный период = 10) = массив ((outReal) | |
OBV | По объему баланса |
OBV ((Записи[Close],Записи[Volume]) = Массив ((outReal) |
Math Transform
:
Показатель | Описание |
---|---|
ACOS | Векторный тригонометрический ACos |
ACOS ((Записи[Close]) = Массив ((outReal) | |
АСИН | Векторный тригонометрический ASin |
ASIN ((Записи[Close]) = Массив ((outReal) | |
ATAN | Векторный тригонометрический ATan |
ATAN(Записи[Close]) = Массив ((outReal) | |
CEIL | Векторный потолок |
CEIL ((Записи[Close]) = Массив ((outReal) | |
COS | Векторные тригонометрические Cos |
COS ((Записи[Close]) = Массив ((outReal) | |
COSH | Векторный тригонометрический Кош |
COSH ((Записи[Close]) = Массив ((outReal) | |
Срок действия | Векторная арифметика Exp |
EXP ((Записи[Close]) = Массив ((outReal) | |
Полы | Векторный пол |
FLOOR ((Records[Close]) = Массив ((outReal) | |
LN | Вектор логистический естественный |
LN ((Записи[Close]) = Массив ((outReal) | |
LOG10 | Вектор Log10 |
LOG10 ((Записи[Close]) = Массив ((outReal) | |
СИН | Вектор тригонометрический Sin |
SIN ((Записи[Close]) = Массив ((outReal) | |
СИНГ | Векторный тригонометрический синтез |
SINH ((Записи[Close]) = Массив ((outReal) | |
SQRT | Вектор квадратный корень |
SQRT ((Записи[Close]) = Массив ((outReal) | |
TAN | Векторный тригонометрический Тан |
TAN ((Записи[Close]) = Массив ((outReal) | |
ТАНХ | Векторный тригонометрический танх |
TANH ((Записи[Close]) = Массив ((outReal) |
Math Operators
:
Показатель | Описание |
---|---|
Максимум | Наибольшее значение за определенный период |
MAX ((Записи[Close],Временный период = 30) = Массив ((outReal) | |
MAXINDEX | Индекс наивысшей стоимости за определенный период |
MAXINDEX ((Записи[Закрыть],Временный период = 30) = Массив ((outInteger) | |
МН | Наименьшее значение за определенный период |
MIN ((Записи[Close],Временный период = 30) = Массив ((outReal) | |
MININDEX | Индекс наименьшего значения за определенный период |
MININDEX ((Записи[Закрыть],Временный период = 30) = Массив ((outInteger) | |
MINMAX | Минимальные и максимальные значения за определенный период |
MINMAX ((Записи[Закрыть],Временный период = 30) = [Массив ((outMin),Массив ((outMax) ] | |
MINMAXINDEX | Индексы наименьших и наивысших значений за определенный период |
MINMAXINDEX ((Записи[Закрыть],Временный период = 30) = [Массив ((outMinIdx),Массив ((outMaxIdx) ] | |
Сумма | Подведение итогов |
SUM ((Записи[Закрыть],Временный период = 30) = Массив ((outReal) |
Cycle Indicators
:
Показатель | Описание |
---|---|
HT_DCPERIOD | Трансформа Хилберта - доминирующий период цикла |
HT_DCPERIOD ((Записи[Close]) = Массив ((outReal) | |
HT_DCPHASE | Трансформа Гилберта - доминирующая фаза цикла |
HT_DCPHASE ((Записи[Close]) = Массив ((outReal) | |
HT_PHASOR | Трансформа Хилберта - компоненты фазора |
HT_PHASOR ((Записи[Закрыть]) = [Массив ((выходInPhase),Массив ((выходQuadrature) ] | |
HT_SINE | Трансформа Гильберта - Синеволна |
HT_SINE ((Records[Close]) = [Array ((outSine),Array ((outLeadSine) ] | |
HT_TRENDMODE | Трансформа Гилберта - тренд против режима цикла |
HT_TRENDMODE ((Записи[Close]) = Массив ((outInteger) |
Volatility Indicators
:
Показатель | Описание |
---|---|
ATR | Средний истинный диапазон |
ATR ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
NATR | Нормированный средний истинный диапазон |
NATR ((Рекорд[высокий, низкий, близкий], временной период = 14) = массив ((outReal) | |
ТРАНГЕ | Истинный диапазон |
TRANGE ((Записи[высокий, низкий, близкий]) = массив ((outReal) |
Overlap Studies
:
Показатель | Описание |
---|---|
ББАНДЫ | Боллингерские полосы |
BBANDS ((Записи[Закрыть],Временный период = 5,Отклонения вверх = 2,Отклонения вниз = 2,МА Тип = 0) = [Массив ((из RealUpperBand),Массив ((из RealMiddleBand),Массив ((из RealLowerBand) ] | |
ДЕМА | Двойная экспоненциальная скользящая средняя |
DEMA ((Записи[Закрыть],Временный период = 30) = Массив ((outReal) | |
ЕМА | Экспоненциальная скользящая средняя |
EMA ((Рекорды[Закрыть],Временный период = 30) = Массив ((outReal) | |
HT_TRENDLINE | Трансформа Гилберта - мгновенная линия тренда |
HT_TRENDLINE ((Записи[Close]) = Массив ((outReal) | |
Кама | Кауфманская адаптивная скользящая средняя |
KAMA ((Записи[Close],Временный период = 30) = Массив ((outReal) | |
М.А. | Движущаяся средняя |
MA ((Записи[Close],Временный период = 30, MA Тип = 0) = Массив ((outReal) | |
Мать | MESA адаптивная скользящая средняя |
MAMA ((Записи[Закрыть],Быстрый лимит = 0,5,медленный лимит = 0,05) = [Аррей ((из MAMA),Аррей ((из FAMA) ] | |
Средняя точка | Средняя точка периода |
MIDPOINT ((Записи[Close],Временный период = 14) = Массив ((outReal) | |
Средняя цена | Цены средней точки за период |
MIDPRICE ((Рекорд[высокий, низкий], временной период = 14) = Массив ((outReal) | |
SAR | Параболический SAR |
SAR ((Записи[Высокий, низкий],Фактор ускорения = 0,02,AF Максимальный = 0,2) = Массив ((outReal) | |
SAREXT | Параболический SAR - расширенный |
SAREXT ((Записи[Высокий, низкий],Начальное значение = 0, Оффсет на обратном = 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) = Массив ((outReal) | |
SMA | Простая скользящая средняя |
SMA ((Записи[Close],Временный период = 30) = Массив ((outReal) | |
Т3 | Тройная экспоненциальная скользящая средняя (T3) |
T3 ((Записи[Close],Временный период = 5,Фактор объема = 0,7) = Массив ((outReal) | |
ТЕМА | Тройная экспоненциальная скользящая средняя |
TEMA ((Записи[Закрыть],Временный период = 30) = Массив ((outReal) | |
ТРИМА | Треугольная скользящая средняя |
TRIMA ((Записи[Close],Временный период = 30) = Массив ((outReal) | |
WMA | Взвешенная скользящая средняя |
WMA ((Records[Close],Time Period = 30) = Array ((outReal)) |
Statistic Functions
:
Показатель | Описание |
---|---|
LINEARREG | Линейная регрессия |
LINEARREG ((Записи[Close],Временный период = 14) = Массив ((outReal) | |
LINEARREG_ANGLE | Угол линейной регрессии |
LINEARREG_ANGLE ((Записи[Close],Временный период = 14) = Массив ((outReal) | |
LINEARREG_INTERCEPT | Перехват линейной регрессии |
LINEARREG_INTERCEPT ((Записи[Close],Временный период = 14) = Массив ((outReal) | |
LINEARREG_SLOPE | Склон линейной регрессии |
LINEARREG_SLOPE ((Записи[Close],Временный период = 14) = Массив ((outReal) | |
СТДДЕВ | Стандартное отклонение |
STDDEV ((Записи[Закрыть],Временный период = 5,Отклонения = 1) = Массив ((outReal) | |
ТСФ | Прогноз по временным сериям |
TSF ((Записи[Закрыть],Временный период = 14) = Массив ((outReal) | |
VAR | Разница |
VAR ((Записи[Close],Временный период = 5,Отклонения = 1) = Массив ((outReal) |
Momentum Indicators
:
Показатель | Описание |
---|---|
ADX | Средний индекс направленного движения |
ADX ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
ADXR | Средний индекс направленного движения |
ADXR ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
АПО | Абсолютный ценовой осциллятор |
APO ((Записи[Закрыть],Быстрый период = 12,Медленный период = 26,MA Тип = 0) = Массив ((outReal) | |
АРОН | Арун. |
AROON ((Записи[Высокий, низкий, временной период = 14) = [Аррей ((выходAroonDown),Аррей ((выходAroonUp) ] | |
AROONOSC | Осиллятор Аруна |
AROONOSC ((Рекорд[высокий, низкий], временной период = 14) = массив ((outReal) | |
БОП | Равновесие сил |
BOP ((Рекордс[Open,High,Low,Close]) = Массив ((outReal) | |
CCI | Индекс товарного канала |
CCI ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
ООП | Осилятор импульса Чанде |
CMO ((Записи[Закрыть],Временный период = 14) = Массив ((outReal) | |
DX | Индекс направленного движения |
DX ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
MACD | Кользящая средняя конвергенция/дивергенция |
MACD ((Записи[Закрыть],Быстрый период = 12,Словый период = 26,Сигнальный период = 9) = [Массив ((outMACD),Массив ((outMACDSignal),Массив ((outMACDHist) ] | |
MACDEXT | MACD с управляемым типом MA |
MACDEXT ((Записи[Закрыть],Быстрый период = 12,Быстрый MA = 0,Беспорядочный период = 26,Беспорядочный MA = 0,Период сигнала = 9,Сигнал MA = 0) = [Массив ((outMACD),Массив ((outMACDSignal),Массив ((outMACDHist) ] | |
MACDFIX | Установка скользящей средней конвергенции/дивергенции 12/26 |
MACDFIX ((Записи[Закрыть],Период сигнала = 9) = [Массив ((из MACD),Массив ((из MACDSignal),Массив ((из MACDHist) ] | |
МФИ | Индекс денежных потоков |
МФИ ((Записи[высокий, низкий, близкий, объем], временной период = 14) = массив ((outReal) | |
MINUS_DI | Минус указатель направления |
MINUS_DI ((Записи[Высокий, низкий, близкий], временной период = 14) = Массив ((outReal) | |
MINUS_DM | Минус направленное движение |
MINUS_DM ((Записи[высокий, низкий],временный период = 14) = Массив ((outReal) | |
Мать. | Импульс |
MOM ((Записи[Закрыть],Временный период = 10) = Массив ((outReal) | |
PLUS_DI | Плюс указатель направления |
PLUS_DI ((Записи[Высокий, низкий, близкий], Временный период = 14) = Массив ((outReal) | |
PLUS_DM | Плюс направленное движение |
PLUS_DM(Записи[высокий, низкий], временной период = 14) = Массив ((outReal) | |
ППО | Процентный осциллятор цен |
PPO ((Записи[Закрыть],Быстрый период = 12,Медленный период = 26,MA Тип = 0) = Массив ((outReal) | |
ROC | Коэффициент изменения: ((цена/предыдущая цена) -1) *100 |
ROC ((Рекордс[Close],Time Period = 10) = Массив ((outReal) | |
ROCP | Коэффициент изменения Процент: (цена-предупреждение) /предупреждение |
ROCP ((Записи[Закрыть],Временный период = 10) = Массив ((outReal) | |
ROCR | Соотношение коэффициента изменения: (цена/prevPrice) |
ROCR ((Записи[Закрыть],Временный период = 10) = Массив ((outReal) | |
ROCR100 | Коэффициент изменения 100 шкала: (цена/prevPrice) * 100 |
ROCR100 ((Записи[Закрыть],Временный период = 10) = Массив ((outReal) | |
РСИ | Индекс относительной силы |
RSI ((Рекорд[Close],Time Period = 14) = Массив ((outReal) | |
СТОЧ | Стохастический |
STOCH ((Записи[Высокий, низкий, близкий],быстрый период K = 5,медленный период K = 3,медленный период K MA = 0,медленный период D = 3,медленный период D MA = 0) = [Массив ((выходSlowK),Массив ((выходSlowD) ] | |
STOCHF | Стохастический быстрый |
STOCHF ((Записи[Высокий, низкий, близкий],быстрый период K = 5,быстрый период D = 3,быстрый период D MA = 0) = [Аррей ((выходFastK),Аррей ((выходFastD) ] | |
STOCHRSI | Индекс относительной силы |
STOCHRSI ((Записи[Закрыть],Временный период = 14,Быстрый-K период = 5,Быстрый-D период = 3,Быстрый-D MA = 0) = [Массив(выходFastK),Массив(выходFastD] | |
ТРИКС | 1-дневный коэффициент изменения (ROC) тройной плавной EMA |
TRIX(Записи[Закрыть],Временный период = 30) = Массив ((outReal) | |
ULTOSC | Окончательный осциллятор |
ULTOSC ((Рекорды[Высокий, низкий, близкий],Первый период = 7,Второй период = 14,Третий период = 28) = Массив ((outReal) | |
Уиллер | Уильямс |
WILLR ((Рекорд[высокий, низкий, близкий], временной период = 14) = массив ((outReal) |
Price Transform
:
Показатель | Описание |
---|---|
AVGPRICE | Средняя цена |
AVGPRICE ((Рекорды[Открыть,высокий,низкий,закрыть]) = Массив ((outReal) | |
MEDPRICE | Средняя цена |
MEDPRICE ((Рекорды[высокий, низкий]) = Массив ((outReal) | |
Тип цены | Типичная цена |
TYPPRICE ((Рекорд[высокий, низкий, близкий]) = Array ((outReal) | |
WCLPRICE | Взвешенная цена закрытия |
WCLPRICE ((Рекорды[высокий, низкий, близкий]) = Массив ((недействительный) |
Платформа FMZ Quant Trading поддерживает обратное тестирование и запрос различных фундаментальных данных в боте.
Использованиеexchange.GetData(Source)
Функция получения основных данных.
Фундаментальные данные криптовалюты временно не собирались.
Фундаментальные данные криптовалюты временно не собирались.
Платформа FMZ Quant Trading поддерживает программирование различных функций платформы и открыла расширенный API.
Он поддерживает расширение управления полномочиями API, как показано на рисунке:
Это позволяет вновь добавленныеAPI KEY
Вы можете войти.*
в поле ввода разрешений API для открытия всех разрешений интерфейса. Укажите конкретные разрешения интерфейса и введите соответствующие расширенные имена функций API, разделенные запятой, напримерGetRobotDetail, DeleteRobot
Я имею в виду, дайте этоAPI KEY
разрешение наПолучить интерфейс бота подробную информациюиУдалить интерфейс бота.
Описание | Код |
---|---|
Успешное исполнение | 0 |
Неправильный ключ API | 1 |
Неправильная подпись. | 2 |
Ошибка Nonce | 3 |
Неправильный метод | 4 |
Неправильный параметр | 5 |
Внутренняя неизвестная ошибка | 6 |
(Нормальный старт)
Статус | Код |
---|---|
Недействительный | 0 |
В эксплуатации | 1 |
Прекращение | 2 |
Выписано. | 3 |
Прекращено. | 4 |
В стратегии есть ошибки. | 5 |
(необычно)
Статус | Код |
---|---|
Стратегия истекла, и пожалуйста, свяжитесь с автором, чтобы купить его снова | -1 |
Докер не найден | -2 |
Ошибка компиляции стратегии | -3 |
Робот уже работает. | -4 |
Недостаточный баланс | -5 |
Количество одновременных стратегий превышает предел | -6 |
Использованиеmd5
метод шифрования для проверки.
Примеры вызовов на языке Python, Golang:
#!/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)
}
Он поддерживает проверку безtoken
(пропуск)secret_key
Например, URL, который напрямую дает интерактивные инструкции боту, которые могут быть использованы дляTradingView
илиWebHook
в других случаях.
ДляCommandRobot(RobotId, Cmd)
функция, параметрnonce
не требует проверки, а частота доступа и время посещения интерфейса не ограничены.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
При условии, что прямая проверка поддерживается, толькоCommandRobot
интерфейс поддерживается для полученияBody
Например, настройки вWebHook URL
изTradingView
:
https://www.fmz.com/api/v1?access_key=fd3be82e9e6e6ed4439f2793a5e9ca&secret_key=520b9f10f3768e6ad1af59ff25184&method=CommandRobot&args=[130350,+""]
Обратите внимание на настройку в соответствии со следующим форматом:args=[130350,+""]
, в котором130350
Это бот?ID
платформы FMZ Quant Trading.
Настройки в поле сообщения (запрошенные данные
Формат JSON:
{"close": {{close}}, "name": "aaa"}
Робот сID
из186515
может получать интерактивную инструкцию:{"close": 39773.75, "name": "aaa"}
.
Формат текста:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
Робот сID
из186515
может получать интерактивную инструкцию:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
ПримерыPython
& Golang
языковые вызовы:
#!/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)
}
Используйте расширенный API на FMZ Quant для реализации
Расширенный API платформы FMZ Quant Trading
https://www.fmz.com/api/v1?
Вышеприведенный символ?
За ней следуют параметры запроса.
Параметры запроса, описанные вPython
язык:
{
'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'
}
Каждое имя параметра разделено символом&
, а названия и значения параметров связаны с символом=
. Полный URL запроса (принимаяmethod=GetNodeList
в качестве примера):
https://www.fmz.com/api/v1?
access_key=8a1f6c3785fd78a1848320e0b19js99f&
nonce=1516292399361&
args=%5B%5D&
sign=085b63456c93hfb243a757366600f9c2&
version=1.0&
method=GetNodeList
Обратите внимание, что нетsecret_key
между параметрами запроса.
Метод подписи
В параметрах запроса параметрsign
является зашифрованной строкой, и метод шифрования следующий.
Согласно формату:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
После соединения струн используйтеMD5алгоритм шифрования для шифрования строки и преобразования ее в шестнадцатизначное значение строки данных, обозначаемое значением параметраsign
.
СсылкаPython
код части подписи:
# 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()
возвращает докерский список счета платформы FMZ Quant Trading, соответствующийAPI KEY
в запросе.
Параметр Никаких.
Возвратная стоимость
{
"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()
возвращает список группировок ботов счета платформы FMZ Quant Trading, соответствующийAPI KEY
в запросе.
Параметр Никаких.
Возвратная стоимость
{
"code":0,
"data":{
"result":{
// All bot grouping information: group ID, group name
"items":[{"id":1122,"name":"test"}]
},
"error":null
}
}
GetPlatformList()
возвращает список бирж, которые были добавлены счетом платформы FMZ Quant Trading, соответствующимAPI KEY
в запросе.
Параметр Никаких.
Возвратная стоимость
{
"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)
возвращает список роботов счета платформы FMZ Quant Trading, соответствующийAPI KEY
в запросе.
Параметрoffset
, length
иrobotStatus
имеют тип целых чисел, иlabel
имеет тип струн.
offset
length
robotStatus
(проход label
(настраиваемая маркировка; все боты с маркировкой могут флиртовать)ДляPython
Пример кода, см. вышеметод проверки - проверка токенов, а далее -Python
Пример вызова:print api('GetRobotList', 'member2')
Напечатать информацию всех роботов с пользовательской этикеткойmember2
.
print api('GetRobotList', 0, 5, -1, 'member2')
страницы от 0 до 5 и перечислить до 5 роботов, обозначенныхmember2
.
Возвратная стоимость
{
"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)
интерфейс отправляет интерактивную команду соответствующему роботу (роботID
: RobotId
) отAPI KEY
в запросе на счет FMZ Quant (интерактивная команда записываетсяGetCommand()
API вызывает стратегию и возвращает).
ПараметрRobotId
имеет тип целого числа, а именно botID
; Cmd
имеет тип строки, которая отправляет интерактивные команды ботам.
RobotId
, ботID
, могут быть полученыGetRobotList(...)
interface.Cmd
является интерактивной командой, отправленной боту; команда будет захвачена функциейGetCommand()
, который запускает интерактивную логику в стратегии (для реализации интерактивной логики в стратегии обратитесь кGetCommand()
функция в файле).Возвратная стоимость
{
// 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)
прекращает запуск бота с указанным идентификатором (робот)ID
: RobotId
), что соответствуетAPI KEY
в запросе счета FMZ Quant.
ПараметрRobotId
имеет тип целого числа, а именно botID
, который может быть полученGetRobotList(...)
интерфейс;StopRobot(RobotId)
интерфейс возвращает код состояния остановившегося робота.
Возвратная стоимость
{
"code": 0,
"data": {
// 2 means stopping
"result": 2,
"error": null
}
}
RestartRobot(RobotId, Settings)
перезапускает робота с указанным идентификатором (роботID
: RobotId
), что соответствуетAPI KEY
в запросе счета FMZ Quant.
Если робот создан расширенным API, расширенный APIRestartRobot (RobotId, Settings)
должен быть использован для перезагрузки, иSettings
Параметр должен быть передан.
Робот, созданный на странице платформы, может быть перезапущен через расширенный API или нажатием кнопки на странице.Settings
Параметр, или просто передатьRobotId
Параметр. Если вы только пройтиRobotId
Параметр, запустить бота согласно текущим настройкам бота.
Параметр
Без настройки бота, параметр стратегииSettings
:
RobotId
имеет тип целого числа; роботID
может быть полученаGetRobotList(...)
.
При настройке бота, параметр стратегииSettings
:
RobotId
имеет тип целого числа; botID
может быть полученаGetRobotList(...)
.
Settings
являетсяJSON
тип объекта.
Settings
Формат параметра следующий:
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"}}
]
}
Примечание:
Когда вы используете конфиденциальную информацию, такую как платформаAPI KEY
, в том числе"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
в конфигурацииeid
, вы должны знать, что FMZ не хранит данные. Данные будут отправлены непосредственно в программу докера, поэтому эта информация должна быть настроена каждый раз, когда бот создается или перезапускается.
Чтобы перезапустить бота, который использует плагин для поддержки обмена, при настройкеSettings
параметр, вы должны сделать следующие настройки дляexchanges
атрибут:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
атрибут - это установить этикетку для обмена объекта, доступ к которому имеет текущийОбщий протокол, которые могут быть полученыexchange.GetLabel()
в стратегию.
Возвратная стоимость
{
"code": 0,
"data": {
// 1 means running
"result": 1,
"error": null
}
}
GetRobotDetail(RobotId)
получает подробную информацию о роботе с указанным идентификатором (роботID
: RobotId
), что соответствуетAPI KEY
в запросе счета платформы торговли FMZ Quant.
ПараметрRobotId
имеет тип целого числа; роботID
может быть полученаGetRobotList(...)
.
Возвратная стоимость
{
"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
}
}
Вsummary
атрибут в возвращенных данных (информация на строке состояния бота; кэшированная в течение 10 секунд; не последние данные) в настоящее время имеет ограничение объема данных (кэшированные данные); ограничение объема данных составляет 200KB, и избыточные данные будут обрезаны. Если вам нужно больше данных информации строки состояния, вы можете использоватьGetRobotLogs
интерфейс для получения (когдаGetRobotLogs
получает информацию из строки состояния, поляsummary
является последними данными).
Описание атрибутаstrategy_exchange_pairs
В качестве примера можно привести следующие данные:
[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]
Первые данные60
представляет собой период K-линии по умолчанию, установленный ботом - 1 минута, а именно 60 секунд.
[44314,42960,15445,14703]
является объектом обменаeid
конфигурированы для бота (согласно порядку добавления).[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
является торговой парой, установленной для обменного объекта, сконфигурированного ботом (в порядке сложения и в одно-к-одному соответствии сeid
).
GetAccount()
возвращает информацию о счете, соответствующуюAPI KEY
в запросе счета платформы торговли FMZ Quant.
Параметр Никаких.
Возвратная стоимость
{
"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
}
}