Forráskód Böngészése

ma(10)条件已接入,等待测试。

skyfffire 2 éve
szülő
commit
44503bb29a
2 módosított fájl, 7 hozzáadás és 0 törlés
  1. 1 0
      PrivateConfig.js.sample
  2. 6 0
      scripts/one-pro.js

+ 1 - 0
PrivateConfig.js.sample

@@ -12,6 +12,7 @@ PrivateConfig.stopLossTimeOverHours = 2        // 亏损时持仓时间
 PrivateConfig.hardStopWinPercentage = 100      // 强制止盈百分比
 PrivateConfig.hardStopLossPercentage = 10      // 强制止损百分比
 PrivateConfig.baseTokenAmount = 68             // 交易额
+PrivateConfig.maPeriod = 10                    // ma指标周期,大于H1的此周期的ma才会交易
 PrivateConfig.delay = 5000                     // 轮询时间
 
 PrivateConfig.tokenMapping = {

+ 6 - 0
scripts/one-pro.js

@@ -7,6 +7,7 @@ const TimeKit = require('../kit/time-kit')
 const TableKit = require('../kit/table-kit')
 const Context = require("../libs/context")
 const assert = require("assert");
+const TickKit = require("../kit/tick-kit");
 
 const holdingHandler = async function(context, task, token, pair) {
   const config = context.config
@@ -133,6 +134,8 @@ const showInfo = function(context, task) {
     const OneInchPrice = token.OneInchPrice ? token.OneInchPrice : NaN
     const BinancePrice = token.BinancePrice ? token.BinancePrice : NaN
     const DiffPrice = token.DiffPrice
+    const mas = TickKit.MA(token.ticks, config.maPeriod)
+    const maValue = mas[mas.length - 1]
     const percentage = NumKit.getSubFloat((DiffPrice / OneInchPrice) * 100, 2)
     const orderPrice = token.orderPrice ? token.orderPrice : ''
     const orderPercentage = orderPrice ? NumKit.getSubFloat(((BinancePrice - orderPrice) / orderPrice) * 100, 2) : ''
@@ -153,6 +156,7 @@ const showInfo = function(context, task) {
       const isNoPrevHandleTime = !token.nextHandleTime
       const isTimeCover = new Date().getTime() > token.nextHandleTime
       const timeCondition = isNoPrevHandleTime || isTimeCover
+      const priceCondition = BinancePrice > maValue
 
       return priceCondition && percentageCondition && timeCondition
     })()
@@ -180,10 +184,12 @@ const priceHandler = async function(context, task) {
 
     const OneInchPrice = NumKit.getSubFloat(await OneInch.price(fromIerc20Token.contract, tokenHash, amount, fromIerc20Token.decimals), priceTick)
     const BinancePrice = NumKit.getSubFloat(await BinanceSpot.realPrice(toToken.exchange.pair), priceTick)
+    const ticks = BinanceKit.parseCloseTicks(await BinanceSpot.klines(toToken.exchange.pair))
 
     toToken.OneInchPrice = OneInchPrice
     toToken.BinancePrice = BinancePrice
     toToken.DiffPrice = BinancePrice - OneInchPrice
+    toToken.ticks = ticks
 
     if ((() => {
       return Math.abs(toToken.DiffPrice) < Math.pow(10, -priceTick)