美文网首页
开源OTCBTC盘口搬砖脚本

开源OTCBTC盘口搬砖脚本

作者: 卢衍泓 | 来源:发表于2018-01-19 22:41 被阅读171次

    上个星期写到OTCBTC盘口搬砖
    https://www.jianshu.com/p/ff800c48f933

    这里,我把按键精灵脚本开源啦。盘口脚本不复杂,但也写了几百行了。
    原因是我在开发python的爬虫脚本,这个脚本不维护了。
    送给大家交流下思路。

    注意:

    这个脚本是一两天内开发完成,必然还存在不少问题,仅供参考思路,若要应用于生产环境还需不少调试【不建议】

    软件:

    • 按键精灵
    • 浏览器

    脚本特性:

    • 自动算价挂单
    • 买价挂低或卖价挂高,自动撤单补单

    可能存在的问题:

    • 获取行情数据异常
    • 分辨率及浏览器大小导致脚本不能正确获取价格等信息
    • 执行或下单异常

    若要测试脚本,需要做的事:

    • 制作图片
    • 匹配位移坐标

    源码

    TracePrint "10s后开始运行脚本"
    Delay 1000
    
    FindPic 0,0,1024,768,"C:\Users\Administrator\Documents\按键精灵图片\买单.bmp",0.9,intX,intY
    If intX > 0 And intY > 0 Then 
        //TracePrint "找到买单图标"
    Else 
        TracePrint"请检查页面,没找到买单图标"
    End If
    
    KeyPress "Enter", 1
    Call 撤买单
    Delay 100
    Call 撤卖单
    Delay 100
    count = 0
    While (1)
        FindPic 0,0,1024,768,"C:\Users\Administrator\Documents\按键精灵图片\买单.bmp",0.9,intX,intY
        If intX > 0 And intY > 0 Then 
            //TracePrint "找到买单图标"
        Else 
            TracePrint"请检查页面,没找到买单图标"
        End If
        Call 获取行情
        Delay 100   
        Call 获取资产余额
        Delay 100
        Call 获取委托
        Delay 100
        //   Call 资产详情
        //   Delay 200
        差价大于1 = 差价百分比-0.3
        If 差价大于1 > 0 Then 
            可买大于0点3= 可买EOS-0.3
            If 可买大于0点3 > 0 Then 
                Call 撤买单
                Call 挂买单(可买EOS)
                Delay 100
            Else 
                //  TracePrint "可买EOS<0.3,不再挂单"
            End If
            可卖EOS大于0点3 = 可卖EOS-0.3
            If 可卖EOS大于0点3 > 0 Then 
                Call 撤卖单
                Call 挂卖单(可卖EOS)
                Delay 100
            Else 
                //   TracePrint "可卖EOS〈0.3,不挂卖单:"
            End If
            //
            KeyPress "Enter", 1
            //Call 检查成交
            Call 检查是否撤单
            Delay 500
        Else 
            //   TracePrint "差价小于0.3%,不操作"
        End If
        
        If count = 60 Then 
            KeyPress "F5", 1
            count = 0
            Delay 10000
        End If
        count = count + 1
        //  TracePrint count
        KeyPress "Enter", 1
        Delay 200
    Wend
    Sub 资产详情
        TracePrint "等价总额EOS:"
        等价总额EOS = 可卖EOS+ 可买EOS+锁定买EOS+锁定卖EOS
        TracePrint 等价总额EOS
        Delay 200
        TracePrint "钱币比:"
        币 = 可卖EOS + 锁定卖EOS
        钱 = 可买EOS+锁定买EOS
        If 币 Then 
            钱币比 = 钱/币*100
            TracePrint 钱币比
        Else 
            TracePrint "手上没有币,只有钱"
        End If
    End Sub
    Sub 获取委托
        //  MoveTo intX + 258, intY + 281
        //  Delay 2000
        //  MoveTo intX+1042,intY+473
        //  Delay 2000
        FindPic intX+258,intY+281,intX+1042,intY+473,"C:\Users\Administrator\Documents\按键精灵图片\买.bmp",0.9,买入X,买入Y
        If 买入X > 0 And 买入Y > 0 Then
            //  TracePrint "找到买单"
            MoveTo 买入X + 250, 买入Y + 8
            LeftDoubleClick 1
            KeyDown "Ctrl", 1
            KeyDown "C", 1
            Delay(100)
            KeyUp "C", 1
            KeyUp "Ctrl", 1
            锁定买EOS = Plugin.Sys.GetCLB()
            //   TracePrint "锁定买EOS:"
            //   TracePrint 锁定买EOS
            MoveTo 买入X + 110, 买入Y + 8
            LeftDoubleClick 1
            KeyDown "Ctrl", 1
            KeyDown "C", 1
            Delay(100)
            KeyUp "C", 1
            KeyUp "Ctrl", 1
            我的买价 = Plugin.Sys.GetCLB()
            //   TracePrint "我的买价:"
            //   TracePrint 我的买价
        Else 
            //        TracePrint "没找到买单"
        End If
        Delay 200
        FindPic intX+258,intY+281,intX+1042,intY+473,"C:\Users\Administrator\Documents\按键精灵图片\卖.bmp",0.9,卖出X,卖出Y
        If 卖出X > 0 And 卖出Y > 0 Then
    //        TracePrint "找到卖单"
            MoveTo 卖出X + 258, 卖出Y + 8
            LeftDoubleClick 1
            KeyDown "Ctrl", 1
            KeyDown "C", 1
            Delay(100)
            KeyUp "C", 1
            KeyUp "Ctrl", 1
            锁定卖EOS = Plugin.Sys.GetCLB()
    //        TracePrint "锁定卖EOS:"
    //        TracePrint 锁定卖EOS
            MoveTo 卖出X + 120, 卖出Y + 8
            LeftDoubleClick 1
            KeyDown "Ctrl", 1
            KeyDown "C", 1
            Delay(100)
            KeyUp "C", 1
            KeyUp "Ctrl", 1
            我的卖价 = Plugin.Sys.GetCLB()
    //        TracePrint "我的卖价:"
    //        TracePrint 我的卖价
        Else 
            //   TracePrint "没找到卖单"
        End If
    End Sub
    Sub 获取资产余额
        MoveTo intX + 825, intY + 55
        //Delay(3000)   
        LeftDoubleClick 1
        KeyDown "Ctrl", 1
        KeyDown "C", 1
        Delay(100)
        KeyUp "C", 1
        KeyUp "Ctrl", 1
        可卖EOS = Plugin.Sys.GetCLB()
        Delay 200
        //  TracePrint "获取初始EOS:"
        //  TracePrint 可卖EOS
        MoveTo intX + 565, intY + 55
        // Delay(3000)  
        LeftDoubleClick 1
        KeyDown "Ctrl", 1
        KeyDown "C", 1
        Delay(100)
        KeyUp "C", 1
        KeyUp "Ctrl", 1
        ETH = Plugin.Sys.GetCLB()
        //   Delay 200
        //   TracePrint "获取初始ETH:"
        //   TracePrint ETH
        //  TracePrint "可买EOS:"
        可买EOS = ETH/(买一价 + 0.000001)
        //   TracePrint 可买EOS  
    End Sub
    Function 挂买单(可买EOS) 
        TracePrint "挂买单:"
        Delay 200
        MoveTo intX+680, intY+87
        LeftDoubleClick 1
        我的买价 = 买一价 + 0.00000001
        //   TracePrint "设置买价:"
        //   TracePrint 我的买价
        SayString 我的买价
        Delay 200
        //设置数量
        MoveTo intX+680, intY+138   
        LeftDoubleClick 1
        //    TracePrint "设置买数量:"
        SayString 可买EOS
        //    TracePrint 可买EOS
        //   TracePrint "确认买入:"
        MoveTo intX + 680, intY + 235
        Delay 1000
        LeftClick 1
        锁定买EOS = 可买EOS
        可买EOS = 0
    End Function
    Function 挂卖单(可卖EOS) 
        TracePrint "挂卖单:"
        MoveTo intX+884, intY+87
        LeftDoubleClick 1
        我的卖价 = 卖一价 - 0.00000001
        //    TracePrint "设置卖价:"
        //   TracePrint 我的卖价
        SayString 我的卖价
        Delay 200
        //设置数量
        MoveTo intX+918, intY+138   
        LeftDoubleClick 1
        //   TracePrint "设置卖数量:"
        SayString 可卖EOS
        //   TracePrint 可卖EOS
        //   TracePrint "确认卖出:"
        MoveTo intX + 918, intY + 235
        Delay 200
        LeftClick 1 
        锁定卖EOS = 可卖EOS
        可卖EOS = 0
    End Function
    Sub 检查是否撤单
        If 锁定卖EOS then
            我的卖价高于卖一价= 我的卖价 -卖一价
            If 我的卖价高于卖一价>0 Then 
                TracePrint "我的卖价高于卖一价"
                TracePrint "需要重新挂卖单"
                Delay 200
                Call 撤卖单
                可卖EOS = 锁定卖EOS
                锁定卖EOS = 0
            Else 
                //      TracePrint "我的卖单排在前面不用撤单"
            End If
        Else      
            //   TracePrint "目前没有挂卖单"
        End If
        If 锁定买EOS Then 
            //      TracePrint "我的买价"
            //      TracePrint 我的买价
            //      TracePrint "买一价"
            //      TracePrint 买一价
            //      TracePrint "我的买价低于买一价"
            我的买价低于买一价 = 我的买价 - 买一价
            //        TracePrint 我的买价低于买一价
            If 我的买价低于买一价<0 Then 
                TracePrint "我的买价低于买一价"
                TracePrint "需要重新挂买单"
                Delay 200
                Call 撤买单
                可买EOS = 锁定买EOS
                锁定买EOS = 0
            Else 
                //          TracePrint "我的买单排在前面不用撤单"
                Delay 200
            End If
        Else      
    //        TracePrint "目前没有挂买单"
            Delay 200
        End If
    End sub
    Sub 撤买单
        FindPic intX+258,intY+281,intX+1042,intY+473,"C:\Users\Administrator\Documents\按键精灵图片\买.bmp",0.9,买入X,买入Y
        If 买入X > 0 And 买入Y > 0 Then
            //   TracePrint "找到买单"
            TracePrint "撤买单"
            MoveTo 买入X + 590, 买入Y + 10
            Delay 200
            LeftClick 1
            Delay 1000
        Else 
            //    TracePrint "没找到买单"
            //   Delay 200
        End If
    End Sub
    Sub 撤卖单
        FindPic intX+258,intY+281,intX+1042,intY+473,"C:\Users\Administrator\Documents\按键精灵图片\卖.bmp",0.9,卖出X,卖出Y
        If 卖出X > 0 And 卖出Y > 0 Then
            //    TracePrint "找到卖单"
            TracePrint "撤卖单"
            MoveTo 卖出X + 590, 卖出Y + 10
            Delay 200
            LeftClick 1
            Delay 1000
        Else 
            //   TracePrint "没找到卖单"
            Delay 200
        End If
    End Sub
    Sub 检查成交
        //检查成交
        MoveTo intX+828, intY+345   
        LeftDoubleClick 1
        KeyDown "Ctrl", 1
        KeyDown "C", 1
        Delay(100)
        KeyUp "C", 1
        KeyUp "Ctrl", 1
        成交率= Plugin.Sys.GetCLB()
        TracePrint 成交率
    End sub
    Sub 获取行情
        MoveTo intX + 25, intY + 55
        Delay 100
        LeftDoubleClick 1
        KeyDown "Ctrl", 1
        KeyDown "C", 1
        Delay(100)
        KeyUp "C", 1
        KeyUp "Ctrl", 1
        //    TracePrint "获取行情"
        Delay 100
        买一价= Plugin.Sys.GetCLB()
        //    TracePrint "买一价:"
        //    TracePrint 买一价
        MoveTo intX+302, intY+55
        LeftDoubleClick 1
        KeyDown "Ctrl", 1
        KeyDown "C", 1
        Delay(100)
        KeyUp "C", 1
        KeyUp "Ctrl", 1
        Delay 100
        卖一价= Plugin.Sys.GetCLB()
        //   TracePrint "卖一价:"
        //    TracePrint 卖一价
        //  Delay 100
        差价百分比 = (卖一价 / 买一价 - 1)*100
        //    TracePrint "差价百分比:"
        //    TracePrint 差价百分比
        Delay 100
    End Sub
    

    相关文章

      网友评论

          本文标题:开源OTCBTC盘口搬砖脚本

          本文链接:https://www.haomeiwen.com/subject/ccoaoxtx.html