import time
import requests
import json
import numpy as np
import pandas as pd
from datetime import datetime
def get_klines(symbol, interval, limit=100):
url = "https://fapi.binance.com/fapi/v1/klines"
params = {'symbol': symbol, 'interval': interval, 'limit': limit}
print(url)
print(json.dumps(params, indent=4))
response = requests.get(url, params=params)
return response.json()
def calculate_ema(prices, period):
return pd.Series(prices).ewm(span=period, adjust=False).mean().tolist()
def calculate_macd(prices, fast_period, slow_period, signal_period):
ema_fast = calculate_ema(prices, fast_period)
ema_slow = calculate_ema(prices, slow_period)
macd = np.subtract(ema_fast[-len(ema_slow):], ema_slow)
signal = calculate_ema(macd, signal_period)
return macd, signal
def find_crossovers(macd, signal, times, prices, ema5, ema30):
crosses = []
valid_crosses = [] # 用于記錄有效的穿透事件
min_length = min(len(macd), len(signal))
last_valid_time = datetime.min # 初始化上一個(gè)有效事件的時(shí)間
for i in range(1, min_length):
closing_price = prices[i]
ema5_price = ema5[i]
ema30_price = ema30[i]
current_time = times[i]
cross_time = datetime.utcfromtimestamp(current_time / 1000 + 8*3600)
time_diff = (cross_time - last_valid_time).total_seconds() / 60 # 計(jì)算時(shí)間差,單位轉(zhuǎn)換為分鐘
confidence_msg = ""
if macd[i-1] < signal[i-1] and macd[i] > signal[i] and closing_price > ema5_price:
if time_diff >= 30 or last_valid_time == datetime.min: # 判斷時(shí)間間隔是否符合要求或者是第一個(gè)事件
if closing_price > ema5_price and closing_price > ema30_price:
confidence_msg = "放心做吧"
crosses.append((i, 'Gold', cross_time.strftime('%Y-%m-%d %H:%M:%S'), '有效', confidence_msg))
last_valid_time = cross_time
else:
crosses.append((i, 'Gold', cross_time.strftime('%Y-%m-%d %H:%M:%S'), '無效', ""))
elif macd[i-1] > signal[i-1] and macd[i] < signal[i] and closing_price < ema5_price:
if time_diff >= 30 or last_valid_time == datetime.min:
if closing_price < ema5_price and closing_price < ema30_price:
confidence_msg = "放心做吧"
crosses.append((i, 'Dead', cross_time.strftime('%Y-%m-%d %H:%M:%S'), '有效', confidence_msg))
last_valid_time = cross_time
else:
crosses.append((i, 'Dead', cross_time.strftime('%Y-%m-%d %H:%M:%S'), '無效', ""))
return crosses
def main():
symbol = 'BTCUSDT'
interval = '5m'
limit = 500
klines = get_klines(symbol, interval, limit)
prices = [float(kline[4]) for kline in klines]
times = [int(kline[0]) for kline in klines]
ema5 = calculate_ema(prices, 5)
ema30 = calculate_ema(prices, 30)
macd, signal = calculate_macd(prices, 6, 7, 4)
crossovers = find_crossovers(macd, signal, times, prices, ema5, ema30)
for index, crossover_type, cross_time, status, confidence_msg in crossovers:
print(f"{crossover_type} Cross at {cross_time}: {status}. {confidence_msg}")
if __name__ == '__main__':
while True:
main()
time.sleep(30)
有效的穿越事件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眠菇,“玉大人边败,你說我怎么就攤上這事∩臃希” “怎么了笑窜?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長登疗。 經(jīng)常有香客問我排截,道長,這世上最難降的妖魔是什么辐益? 我笑而不...
- 正文 為了忘掉前任断傲,我火速辦了婚禮,結(jié)果婚禮上智政,老公的妹妹穿的比我還像新娘艳悔。我一直安慰自己,他們只是感情好女仰,可當(dāng)我...
- 文/花漫 我一把揭開白布猜年。 她就那樣靜靜地躺著,像睡著了一般疾忍。 火紅的嫁衣襯著肌膚如雪乔外。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼欲逃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饼暑?” 一聲冷哼從身側(cè)響起稳析,我...
- 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弓叛,沒想到半個(gè)月后彰居,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡撰筷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年陈惰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毕籽。...
- 正文 年R本政府宣布平委,位于F島的核電站奈虾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廉赔。R本人自食惡果不足惜肉微,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜡塌。 院中可真熱鬧碉纳,春花似錦、人聲如沸馏艾。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铁孵,卻和暖如春锭硼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜕劝。 一陣腳步聲響...
- 正文 我出身青樓暑始,卻偏偏與公主長得像,于是被迫代替她去往敵國和親婴削。 傳聞我的和親對象是個(gè)殘疾皇子廊镜,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 一、有時(shí)候會(huì)碰到這么一個(gè)有趣的現(xiàn)象馆蠕,上層的ViewGroup把事件傳遞到下層的View期升,導(dǎo)致一些奇怪的bug。 比...
- 這幾天鬧得沸沸揚(yáng)揚(yáng)的事件當(dāng)屬于關(guān)于未成年犯罪的問題,也正是這幾天惡性的青少年暴力事件而引發(fā)的社會(huì)討論吼渡。一方面容为,我覺...
- 這兩天全網(wǎng)都被4月17日發(fā)生在上海的一則新聞刷屏了,一名17歲少年在學(xué)校與同學(xué)發(fā)生矛盾被媽媽批評寺酪,結(jié)果在媽媽駕車行...
- 一談《道德與法治》課上的有效化活動(dòng)教學(xué) 道德教育要回歸生活寄雀,怎樣讓《道德與法治》教學(xué)提高實(shí)效性得滤,達(dá)到育人目的...
- 在生活中懂更、工作中,我們常常會(huì)遇到這樣的情況:就是我們在做事情時(shí)非常的努力急膀,但收獲卻很少沮协,成效也不明顯。最終導(dǎo)致對生...