Я пытаюсь установить покупки и продажи в столбце в фрейме данных словарей. Я создавал такие функции:
tff = ["GBPUSD","USDJPY","USDCHF","AUDUSD","GBPJPY","EURUSD","EURGBP","GBPCHF","GBPAUD","GBPAUD","USDCAD","EURCHF","EURCAD","AUDCAD","AUDCHF","AUDJPY","CADCHF"]
TF = ["M1","M2","M3","M4","M5","M6","M10","M12","M15","M20","M30","H1","H2","H3","H4","H6","H8","H12","D1","W1",]
for r in TF:
for item in tff:
ratesC = {item: {r:pd.DataFrame(mt5.copy_rates_from(item, getattr(mt5, 'TIMEFRAME_%s' % r), utc_from , 288),
columns=['time', 'open', 'low', 'high', 'close', 'tick_volume', 'spread', 'real_volume']).drop(['tick_volume','spread','real_volume'], axis=1)for r in TF}for item in tff }
for k2, w2 in ratesC.items():
for r in TF:
w2[r]['time'] = pd.to_datetime(w2[r]['time'], unit='s')
w2[r]['MA20'] = (w2['M1']['close'].rolling(window=20).mean())
w2[r]['MA200'] = w2[r]['close'].rolling(window=200).mean()
w2[r]['20dSTD'] = w2[r]['close'].rolling(window=20).std()
w2[r]['Upper'] = w2[r]['MA20'] + (w2[r]['20dSTD'] * 2)
w2[r]['Lower'] = w2[r]['MA20'] - (w2[r]['20dSTD'] * 2)
Я пытаюсь отобразить условия и установить для столбца значение 1 или -1, но это не работает, и я не уверен, как действовать дальше. Мне нужно использовать фреймы данных? Какой-нибудь совет?
for klk, wlkl in ratesC.values():
for r in TF:
if wlkl[r]['close'] >= wlkl[r]['AllHigh']:
wlkl[r]['AllHighPosition'] = -1
if wlkl[r]['close'] <= wlkl[r]['AllLow1']:
wlkl[r]['AllHighPosition'] = 1