point_collection.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. # from utils.point_utils import UiFactory
  2. import logging
  3. from plat.base.abs_ui import AbsUi
  4. class PointCollection(AbsUi):
  5. def __init__(self, serial: str):
  6. super().__init__(serial)
  7. self.point_path = '../../assets/point/deepcoin_point.json'
  8. self.add_func(self.btn_jiao_yi)
  9. self.add_func(self.btn_mairu_kaiduo)
  10. self.add_func(self.btn_shijia_quanping)
  11. def btn_jiao_yi(self):
  12. return self.get_point({
  13. "name": "btn_jiao_yi",
  14. "desc": "交易按钮",
  15. "xpath": '//*[@content-desc="交易"]'
  16. })
  17. def btn_mairu_kaiduo(self):
  18. return self.get_point({
  19. "name": "btn_mairu_kaiduo",
  20. "desc": "买入/开多",
  21. "xpath": '//*[@content-desc="买入/开多"]'
  22. })
  23. def btn_shijia_quanping(self):
  24. self.to_next_swipe()
  25. return self.get_point({
  26. "name": "btn_shijia_quanping",
  27. "desc": "买入/开多",
  28. "xpath": '//*[@content-desc="市价全平"]'
  29. })
  30. def btn_kaichang(self):
  31. return self.get_point({
  32. "name": "btn_kaichang",
  33. "desc": "开仓",
  34. "xpath": '//*[@content-desc="开仓"]'
  35. })
  36. def slider_baozhengjin(self, offset=0, sleep=0.1):
  37. """
  38. 保证金滑块
  39. :param sleep 休眠
  40. :param offset 价格偏移量 默认取50% x=368 每偏移69 向下多一个 偏移-69向上多一个 取值范围 [-2,2]
  41. 坐标: 0% 230 25% 299 50% 368 75% 437 100% 506
  42. """
  43. self.to_top_swipe()
  44. self.d.sleep(0.1)
  45. x, y = self.btn_mairu_kaiduo()
  46. x1 = x + offset * 69
  47. y1 = y - 140
  48. logging.info(f"开多坐标: ({x},{y})")
  49. logging.info(f"保证金50%坐标: ({x1},{y1})")
  50. self.click_point(x1, y1)
  51. self.d.sleep(sleep)
  52. def click_kaicang(self):
  53. """
  54. 开仓
  55. """
  56. self.click_xpath('//*[@content-desc="开仓"]')
  57. def click_pingchang(self, sleep=0.1):
  58. """
  59. 开仓
  60. :param sleep: 等待时间
  61. """
  62. self.click_xpath('//*[@content-desc="平仓"]')
  63. self.d.sleep(sleep)
  64. def select_weituo_xianjia(self):
  65. """
  66. 选择限价委托
  67. """
  68. x, y = self.btn_kaichang()
  69. logging.info(f"开仓按钮坐标: ({x},{y})")
  70. x1 = x + 50
  71. y1 = y + 55
  72. logging.info(f"选择委托框: ({x1},{y1})")
  73. self.click_point(x1, y1)
  74. x2 = x1
  75. y2 = y1 + 100
  76. self.d.sleep(0.2)
  77. logging.info(f"选择限价委托: ({x2},{y2})")
  78. self.click_point(x2, y2)
  79. def click_price_red(self, offset=0):
  80. """
  81. 点击价格 开多 平空, 点击红色价格
  82. :param offset 价格偏移量 默认取第5个, 每偏移20 向下多一个 偏移-20 向上多一个 取值范围 [-4,4]
  83. """
  84. self.select_weituo_xianjia()
  85. self.d.sleep(0.1)
  86. x1 = 50
  87. y1 = 330 + offset * 20
  88. logging.info(f"选择价格: ({x1},{y1})")
  89. self.click_point(x1, y1)
  90. def click_price_green(self, offset=0):
  91. """
  92. 点击价格 开空 平多, 点击红色价格
  93. :param offset 价格偏移量 默认取第5个, 每偏移20 向下多一个,偏移-20 向上多一个
  94. """
  95. self.select_weituo_xianjia()
  96. self.d.sleep(0.1)
  97. x1 = 50
  98. y1 = 330 + offset
  99. logging.info(f"选择价格: ({x1},{y1})")
  100. self.click_point(x1, y1)
  101. def click_mairu_kaiduo(self):
  102. """
  103. 买入开多
  104. """
  105. self.click_xpath('//*[@content-desc="买入/开多"]')
  106. def click_mairu_pingkong(self):
  107. """
  108. 买入平空
  109. """
  110. self.click_xpath('//*[@content-desc="买入/平空"]')
  111. def click_maichu_kaikong(self):
  112. """
  113. 卖出开空
  114. """
  115. self.click_xpath('//*[@content-desc="卖出/开空"]')
  116. def click_maichu_pingduo(self):
  117. """
  118. 卖出平多
  119. """
  120. self.click_xpath('//*[@content-desc="卖出/平多"]')