【BTC】ビットコイン情報交換スレッド6617 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは1000を超えました。
次スレ検索 歴削→次スレ 栞削→次スレ
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
30
(1): 承認済み名無しさん (ワッチョイ 235e-zv1+) [] 09/29(月)10:10 ID:pQZBiNLJ0(1/4)
金相場がガンガンズンズングイグイ上昇 もう株とかFXよりゴールドに全ツッパしようぜ [828293379]
2chスレ:news
143: 承認済み名無しさん (ワッチョイ 0593-aCL5) [] 09/29(月)12:16 ID:tiAoh7g/0(33/36)
>>137
👉 ポイント

EMAとRSIでトレンド+売られすぎ判定

下トレンド+EMA戻りでショート(ただしRSI oversoldなら回避)

上トレンド+RSI回復でロング

ATRでストップ/TP判定

---

import pandas as pd, numpy as np

def ema(s, p): return s.ewm(span=p).mean()
def rsi(s, p=14):
d = s.diff(); up, dn = d.clip(lower=0), -d.clip(upper=0)
rs = up.rolling(p).mean() / dn.rolling(p).mean()
return 100 - 100/(1+rs)
def atr(df, p=14):
tr = pd.concat([(df.h-df.l), (df.h-df.c.shift()).abs(), (df.l-df.c.shift()).abs()], axis=1).max(1)
return tr.rolling(p).mean()

def strategy(df):
df['ema20'], df['ema50'] = ema(df.c,20), ema(df.c,50)
df['rsi'], df['atr'] = rsi(df.c), atr(df)
sig = []
for i in range(len(df)):
if i<50: sig.append(0); continue
r, e20, e50 = df.rsi[i], df.ema20[i], df.ema50[i]
# 下トレンド+戻り売り
if e20<e50 and abs(df.c[i]/e20-1)<0.005 and r>30: sig.append(-1)
# 上トレンド+RSI回復ロング
elif e20>e50 and r>30 and df.rsi[i-1]<=30: sig.append(1)
else: sig.append(0)
df['signal']=sig
return df

# ------------- サンプル使用 -------------
# CSV: datetime,open,high,low,close,volume
df = pd.read_csv("OHLCV.csv")
df.columns = ['t','o','h','l','c','v']
df = strategy(df)
print(df[['t','c','signal']].tail(20))

---

これならかなり短くてスッキリしました。

signal = 1 → ロング

signal = -1 → ショート

signal = 0 → 様子見
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s