This commit is contained in:
aaron 2024-07-27 08:57:11 +08:00
parent 47aba3bc64
commit 39e3814c69

View File

@ -12,11 +12,11 @@ import dingding
# crossover 函数:检测上穿信号 # crossover 函数:检测上穿信号
def crossover(series1, series2): def crossover(series1, series2):
return (series1 > series2) & (series1.shift(1) <= series2.shift(1)) return (series1 > series2) and (series1.shift(1) <= series2.shift(1))
# crossunder 函数:检测下穿信号 # crossunder 函数:检测下穿信号
def crossunder(series1, series2): def crossunder(series1, series2):
return (series1 < series2) & (series1.shift(1) >= series2.shift(1)) return (series1 < series2) and (series1.shift(1) >= series2.shift(1))
## 检查信号 ## 检查信号
def stratergy_run(symbol, interval, df, debug): def stratergy_run(symbol, interval, df, debug):
@ -32,19 +32,25 @@ def stratergy_run(symbol, interval, df, debug):
midDiff = abs(df['ema10'] - df['ema30']) / df['ema30'] midDiff = abs(df['ema10'] - df['ema30']) / df['ema30']
longDiff = abs(df['ema30'] - df['ema144']) / df['ema144'] longDiff = abs(df['ema30'] - df['ema144']) / df['ema144']
df['priceCheck'] = (longDiff <= maxDifference) & (midDiff <= maxDifference) & (shortDiff <= maxDifference) # df['priceCheck'] = (longDiff <= maxDifference) and (midDiff <= maxDifference) and (shortDiff <= maxDifference)
df['isLongArrangement'] = (df['ema5'] > df['ema10']) & (df['ema10'] > df['ema30']) & (df['ema30'] > df['ema144']) # df['isLongArrangement'] = (df['ema5'] > df['ema10']) and (df['ema10'] > df['ema30']) and (df['ema30'] > df['ema144'])
df['isShortArrangement'] = (df['ema5'] < df['ema10']) & (df['ema10'] < df['ema30']) & (df['ema30'] < df['ema144']) # df['isShortArrangement'] = (df['ema5'] < df['ema10']) and (df['ema10'] < df['ema30']) and (df['ema30'] < df['ema144'])
d1 = df.iloc[-1]
d1 = df.iloc[-1]
d2 = df.iloc[-2] d2 = df.iloc[-2]
d3 = df.iloc[-3] d3 = df.iloc[-3]
isbullish = d1['isLongArrangement'] == True & d2['isLongArrangement'] == False & d1['priceCheck'] == True d1['isLongArrangement'] = (d1['ema5'] > d1['ema10']) and (d1['ema10'] > d1['ema30']) and (d1['ema30'] > d1['ema144'])
isBear = d1['isShortArrangement'] == True & d2['isShortArrangement'] == False & d1['priceCheck'] == True d2['isLongArrangement'] = (d2['ema5'] > d2['ema10']) and (d2['ema10'] > d2['ema30']) and (d2['ema30'] > d2['ema144'])
print(f"{symbol} - {interval} bullish: {isbullish} | bear : {isBear}") d1['isShortArrangement'] = (d1['ema5'] < d1['ema10']) and (d1['ema10'] < d1['ema30']) and (d1['ema30'] < d1['ema144'])
d2['isShortArrangement'] = (d2['ema5'] < d2['ema10']) and (d2['ema10'] < d2['ema30']) and (d2['ema30'] < d2['ema144'])
isbullish = d1['isLongArrangement'] == True and d2['isLongArrangement'] == False
isBear = d1['isShortArrangement'] == True and d2['isShortArrangement'] == False
print(f"{symbol} - {interval} bullish: {isbullish} | bear : {isBear} | LongArrangement: {d1['isLongArrangement']} | ShortArrangement: {d1['isShortArrangement']}")
if(isbullish | isBear): if(isbullish | isBear):
message = f"🦄 信 号 提 醒 🦄\r\n\r\n" message = f"🦄 信 号 提 醒 🦄\r\n\r\n"
message += f"策略:【趋势追踪V1.0】\r\n" message += f"策略:【趋势追踪V1.0】\r\n"