FX:GBPJPY   Pound Inggris / Yen Jepang
import backtrader as bt

class MovingAverageCrossover(bt.Strategy):

params = (
("fast_window", 20),
("slow_window", 50),
("order_percentage", 0.95),
("take_profit_percentage", 0.03),
("stop_loss_percentage", 0.02),
)

def __init__(self):
self.fast_average = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.fast_window
)
self.slow_average = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.slow_window
)

def next(self):
if self.position:
if self.data.close >= self.sell_price:
self.sell()
elif self.data.close < self.stop_loss:
self.sell()
else:
if self.data.close > self.fast_average:
self.buy_price = self.data.close * (1 + self.params.take_profit_percentage)
self.stop_loss = self.data.close * (1 - self.params.stop_loss_percentage)
size = self.params.order_percentage * self.broker.cash
self.buy(size=size)

if __name__ == "__main__":
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceData(dataname="AAPL", fromdate="2020-01-01", todate="2021-12-31")
cerebro.adddata(data)
cerebro.addstrategy(MovingAverageCrossover)
cerebro.run()

Ide yang Berhubungan

Pernyataan Penyangkalan

Informasi dan publikasi tidak dimaksudkan untuk menjadi, dan bukan merupakan saran keuangan, investasi, perdagangan, atau rekomendasi lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Persyaratan Penggunaan.