开源OTCBTC盘口搬砖脚本

上个星期写到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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351