Tradeクラスの実装例 ⑥RSI
バックテストで使用するTradeクラスの実装例として、RSIを使用した例を挙げておきます。
from output.trade.trade_base import TradeBase, Reason
from signals.indicator import Indicator as Ind
from signals.price_util import PriceUtil as PUtil
class Trade(TradeBase):
# 計算日数
RSI_DAYS = 14
BUY_THRESHOLD = 30
SELL_THRESHOLD = 70
def __init__(self, price_row, price_values, trade_values, investment):
super().__init__(price_row, price_values, trade_values, investment)
# 買い可能判定(売買)
def is_buy_signal(self):
can_buy = False
if not self.trade.is_hold:
# RSI
close_list = self.price.close_list
price_days = self.price.days
period = self.RSI_DAYS
back_days = 0
rsi = Ind.rsi(close_list, price_days, period, back_days)
if rsi is None:
return False
# 判定
if rsi < self.BUY_THRESHOLD:
can_buy = True
return can_buy
# 売り可能判定(売買)
def is_sell_signal(self):
can_sell = False
if self.trade.is_hold:
# RSI
close_list = self.price.close_list
price_days = self.price.days
period = self.RSI_DAYS
back_days = 0
rsi = Ind.rsi(close_list, price_days, period, back_days)
if rsi is None:
return False
# 判定
if rsi > self.SELL_THRESHOLD:
can_sell = True
return can_sell
RSIについて
RSIについては以下のサイトを参考にしてください。
プロフィールアイコンを若いころの写真に変えてみました。身バレを防ぐためにStable Diffusionで加工しています。思っていたより綺麗になってしまってなんか嬉しいです。
綺麗になった私をもっと見てキャンペーンでもやろうかな。