Skip to content

Latest commit

 

History

History
118 lines (94 loc) · 3.71 KB

交互模板.md

File metadata and controls

118 lines (94 loc) · 3.71 KB

策略名称

交互模板

策略作者

小小梦

策略描述

  • 测试代码

    // 测试代码
    function main() {
        $.BindingFunc("test1", function(cmd, param){                     // 绑定 控件名称为 test1 的按钮,function(cmd, param){...} 为该按钮的响应函数, 响应函数 第一个参数为 触发响应函数的控件名称即:test1
            var ticker = exchange.GetTicker()                            // 第二个 param 参数是 控件点击时 附带的 参数(数值类型、字符串类型、布尔类型、下拉框 都有附带参数,按钮类型没有附带参数)
            Log("控件:", cmd, "ticker:", ticker, " 参数:", param)
        })
        $.BindingFunc("test3", function(cmd, param){                     // 绑定 test3 ...
            var account = exchange.GetAccount()
            Log("account:", account, "cmd:", cmd, "param:", param)
        })
        $.BindingFunc("test5", function(){                               // 绑定 test5 ... 
            Log(exchange.GetName())
        })
        while(1){
            $.GetCommand()                                               // 主循环中 检测 交互命令。
            Sleep(2000)
        }
    }
    
  • 接口函数

    • 绑定控件响应函数 $.BindingFunc(cmdControlName, function(cmd, param){...})

    • 交互检测函数 代替 平台API GetCommand() 函数 $.GetCommand()

  • 测试代码 配置的 控件截图 IMG

  • 如有问题欢迎提出,留言。

源码 (javascript)

var _CmdMap = {}

$.BindingFunc = function(cmdName, cmdFunc) {
    _CmdMap[cmdName] = cmdFunc
}

$.GetCommand = function() {
    var cmd = GetCommand()
    if(cmd) {
        strArr = cmd.split(":")
        func = _CmdMap[strArr[0]]
        if(strArr.length == 1) {
            // 调用对应 命令的响应函数
            if(func) {
                func(strArr[0])
            }
        } else if(strArr.length == 2) {
            // 调用对应 命令的响应函数
            if(func) {
                func(strArr[0], strArr[1])
            }
        } else {
            var param = strArr[1]
            for(var i = 2; i < strArr.length; i++) {
                param += (":" + strArr[i])
            }
            
            // 调用对应 命令的响应函数
            if(func) {
                func(strArr[0], param)
            }
        }
        if(!func) {
            Log(strArr[0], "该命令未注册响应函数.", "#FF0000")
        }
    }
}

// 测试代码
function main() {
    $.BindingFunc("test1", function(cmd, param){                     // 绑定 控件名称为 test1 的按钮,function(cmd, param){...} 为该按钮的响应函数, 响应函数 第一个参数为 触发响应函数的控件名称即:test1
        var ticker = exchange.GetTicker()                            // 第二个 param 参数是 控件点击时 附带的 参数(数值类型、字符串类型、布尔类型、下拉框 都有附带参数,按钮类型没有附带参数)
        Log("控件:", cmd, "ticker:", ticker, " 参数:", param)
    })
    $.BindingFunc("test3", function(cmd, param){                     // 绑定 test3 ...
        var account = exchange.GetAccount()
        Log("account:", account, "cmd:", cmd, "param:", param)
    })
    $.BindingFunc("test5", function(){                               // 绑定 test5 ... 
        Log(exchange.GetName())
    })
    while(1){
        $.GetCommand()                                               // 主循环中 检测 交互命令。
        Sleep(2000)
    }
}

策略出处

https://www.fmz.com/strategy/137403

更新时间

2019-02-15 11:49:52