// 也可以构造一个按钮在表格中, 策略用GetCommand接收cmd属性的内容
var table = {
type: 'table',
title: '持仓操作',
cols: ['列1', '列2', 'Action'],
rows: [
['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': '平仓'}],
]
};
LogStatus('`' + JSON.stringify(table) + '`')
// 或者构造一单独的按钮
LogStatus('`' + JSON.stringify({'type':'button', 'cmd': 'coverAll', 'name': '平仓'}) + '`')
// 可以自定义按钮风格(bootstrap的按钮属性)
LogStatus('`' + JSON.stringify({'type':'button', 'class': 'btn btn-xs btn-danger', 'cmd': 'coverAll', 'name': '平仓'}) + '`')
API-документация показывает, что форма, строка, изображение, график и т. д. отображаются в строке состояния политики при вызове API-функции:
LogStatus
Это было реализовано. Мы также можем установить интерактивную кнопку, создав JSON-данные.
function test1(p) {
Log("调用自定义函数,参数:", p);
return p;
}
function main() {
while (true) {
var table = {
type: 'table',
title: '持仓操作',
cols: ['列1', '列2', 'Action'],
rows: [
['a', '1', {
'type': 'button', // 显示按钮 必须要 把 type 设置为 button 类型
'cmd': "CoverAll", // 字符串,发送的 数据,由GetCommand()函数接受。
'name': '平仓' // 按钮上显示的名字
}],
['b', '1', {
'type': 'button',
'cmd': 10, // 数值
'name': '发送数值'
}],
['c', '1', {
'type': 'button',
'cmd': _D(), // 函数 策略运行 期间会一直调用
'name': '调用函数'
}],
['d', '1', {
'type': 'button',
'cmd': 'JScode:test1("ceshi")', // 字符串, 用于执行的 JS 代码。
'name': '发送JS代码'
}]
]
};
LogStatus('`' + JSON.stringify(table) + '`')
var str_cmd = GetCommand();
if (str_cmd) {
Log("接收到的交互数据 str_cmd:", "类型:", typeof(str_cmd), "值:", str_cmd);
}
if (str_cmd && str_cmd.split(':', 2)[0] == "JScode") { // 判断是否有消息
var js = str_cmd.split(':', 2)[1]; // 分割 返回的消息 字符串, 限制返回2个, 把索引为1的 元素 赋值给 名为js 的变量
Log("执行调试代码:", js); // 输出 执行的代码
try { // 异常检测
eval(js); // 执行 eval函数, 该函数执行传入的参数(代码)。
} catch (e) { // 抛出异常
Log("Exception", e); // 输出错误信息
}
}
Sleep(500);
}
}
Нажмите на кнопку "Подставка" и вы получите сообщение, которое будет отправлено в обычном режиме:
> 但是点击 “发送数值” 的时候就不行了,原因是[ ```'cmd': 10, // 数值``` ]这里是 10 。不能发送数值类型。
![img](/upload/asset/2d8e0f86599f1b82da792544b7b840bc824d4a96.png)
# 已经优化 兼容了 数值,返回的 为数值形式的 字符串。
В журнале печатаются полученные данные:
function test1(p) {
Log("调用自定义函数,参数:", p);
return p;
}
Нажмите кнопку:
Вы можете увидеть, что выполненная функция test1
Log("调用自定义函数,参数:", p);
Я не знаю, что делать.
'class': 'btn btn-xs btn-danger',
Стилизация может изменить внешний вид кнопки.Поторопитесь, делайте это!
Легкие облака.Наконец-то я нашел эту кнопку.
Второй.JScode:test1 (("ceshi") Может ли это повлиять на главный цикл?
ФмнуроМожно ли использовать числовые значения в строке 2 в качестве типа ввода?
ХокшелатоФактические результаты тестирования и результаты в уроках имеют входные данные. Все отправленные данные были проанализированы для `string`, поэтому: 1. ** Нажмите на кнопку "Отправить числовые значения" ** 2. ** Призыв к функции ** При запуске кнопки функция `_D() ` уже была решена, и поле подсказки спрашивает, точно ли вы хотите отправить команду к боту **2018-03-16 16:40:50**? Однако, если я использую другие функции, такие как: `'cmd': Log ((exchange.GetAccount)))), `, после запуска бот будет возвращать данные, даже если не нажимать кнопку. Если `'cmd': exchange.GetAccount)))), `, при запуске кнопки указывается на то, что нужно отправить команду к боту **[object Object]**? Итак, можно ли подробно объяснить логику работы BotVS с атрибутом `cmd` в интерактивной кнопке?
Мистер Хо.Маленький сон, кроме того, что можно добавить таблицы и кнопки в панели состояния, как добавить другие элементы формы, такие как текстовые рамки
Профессиональные кормильцы666 - это еще большее событие
Профессиональные кормильцы666 - это еще большее событие
Изобретатели количественного измерения - мечтыО, спасибо за поддержку.
Легкие облака.Но искренность полезна.
Изобретатели количественного измерения - мечтыЭто старый пост.
Изобретатели количественного измерения - мечтыВременный Кнопка состояния имеет только один тип контроллера, кнопка.
Изобретатели количественного измерения - мечтыТаким образом, есть четвёртая кнопка: отправка JS-кода, который нажимается, чтобы выполнить соответствующую функцию или JS-код.
ХокшелатоПодумав, `'cmd': _D() ` само по себе не имеет вывода, `'cmd': Log ((_D()) ` будет продолжать выводить. Но, если надежда запускается с помощью кнопки, почему функции в `cmd` будут постоянно вызываться?
ХокшелатоПростите, немного путаю. `test1 ((a++) ` в вашем коде будет постоянно выводить, или, как я сказал ранее, даже если я не нажму эту кнопку, робот будет выводить сразу после запуска.
Изобретатели количественного измерения - мечтыВторой момент, который вы можете неправильно понять, когда я говорю о постоянном вызове, это означает: каждый раз, когда программа работает, этот _D() возвращает новое время, используемое в качестве команды для этой кнопки. Это не значит, что карта в этом положении всегда вызывает _D(). Мой код, который вы тестируете, будет постоянно выводиться, проверяться. `` var a = 0 function test1 ((p) { Log (("призыв на пользовательскую функцию, параметры:", p); return p; {y:bi} function main (() { while (true) { пока (правда) { var table = { type: 'table', title: "Операции с хранением", Cols: ['Слога 1', 'Слога 2', 'Action'], РАУС: [ ['a', '1', { 'type': 'button', // показывает кнопку. 'cmd': "CoverAll", // строка, отправленные данные, принятые функцией GetCommand(). 'name': 'Plating' // Название, отображаемое на кнопке }], ['b', '1', { 'type': 'button', 'type': 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button' 'cmd': 10, // значение 'name': 'отправить значение' }], ['c', '1', { 'type': 'button', 'type': 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button' 'cmd': test1 ((a++), // Функция Политика будет вызываться во время выполнения 'name': 'Призыв функции' }], ['d', '1', { 'type': 'button', 'type': 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button', 'button' 'cmd': 'JScode:test1 (("ceshi") '', // строка, используемая для выполнения JS-кода. 'name': 'Отправить JS-код' {C:$0000FF} Я не знаю. }; LogStatus (('`' + JSON.stringify ((table) + '`') var str_cmd = GetCommand (); if (str_cmd) { Log (("принятые данные взаимодействия str_cmd:", "тип:", typeof ((str_cmd), "значение:", str_cmd); {y:bi} if (str_cmd && str_cmd.split ((':', 2)[0] == "JScode") { // определяет, есть ли сообщение var js = str_cmd.split ((':', 2) [1]; // разделение Возвращенное сообщение Структура, ограничивающая возвращение 2 элементов с индексом 1 Присвоение значения переменной под названием js Log (("выполнить дешифровку кода:", js); // выводить выполненный код try { // обнаружение ошибок eval ((js); // выполняет функцию eval, которая выполняет вводимые параметры ((код)). } catch (e) { // Выбросить исключение Log (("Exception", e); // Высылает ошибку {y:bi} {y:bi} Sleep ((500); {y:bi} {y:bi} `` Первый вопрос: числовые типы теперь совместимы, это тоже предварительная версия, я изменил следующую документацию. Спасибо за предложение ^^
Изобретатели количественного измерения - мечтыВ настоящее время внедряется только в форме статуса кнопки "Добавить кнопку", другие элементы не поддерживаются ^^.