Başka bir deneme. Muhteşem.
Talebim : "Pinescript v5 ile bir strateji yazılacak. Kapanış hareketli ortalamanın üstünde ise 1 lot alım yapılacak. %4 ile kar alınacak. %2 ile stop loss olacak. . Kapanış hareketli ortalamanın altında ise 1 lot satım yapılacak. %4 ile kar alınacak. %2 ile stop loss olacak. İlk işlemde zarar olursa, sonraki her işlem için alım miktarı 2 kat yapılacak. Önceki zarar miktarı kadar kar elde edilirse fazla alınan miktar satılacak."
Cevabı : "Maalesef Pinescript v5 hala geliştirme aşamasındadır ve henüz kullanıma sunulmamıştır. Ancak size Pinescript v4 ile bir örnek strateji yazabilirim."
Kod:
//@version=4
strategy("Moving Average Strategy", overlay=true)
// Moving Averages
fast_ma = sma(close, 10)
slow_ma = sma(close, 20)
// Trading Logic
if (close > fast_ma)
strategy.entry("Buy", strategy.long, 1)
if (close < fast_ma)
strategy.entry("Sell", strategy.short, 1)
// Stop Loss and Take Profit
stop_loss = 0.02
take_profit = 0.04
strategy.exit("Exit", "Buy", profit=take_profit, loss=stop_loss)
strategy.exit("Exit", "Sell", profit=take_profit, loss=stop_loss)
// Martingale Position Sizing
martingale_factor = 2
if (strategy.position_size < 0)
strategy.position_size = abs(strategy.position_size) * martingale_factor
// Close Excess Positions
if (strategy.position_size > 1)
excess_positions = strategy.position_size - 1
if (strategy.position_size > abs(excess_positions))
strategy.position_size -= abs(excess_positions)
strategy.exit("Sell Excess", "Sell", qty=abs(excess_positions))
else
strategy.position_size += abs(excess_positions)
strategy.exit("Buy Excess", "Buy", qty=abs(excess_positions))
İlave açıklaması : Bu strateji, 10 dönemlik bir hızlı hareketli ortalama ve 20 dönemlik bir yavaş hareketli ortalama kullanır. Kapanış fiyatı hızlı hareketli ortalamanın üzerinde ise 1 lot alım yapar ve kapanış fiyatı hızlı hareketli ortalamanın altında ise 1 lot satış yapar.
Kar al ve stop loss seviyeleri %4 ve %2 olarak belirlenmiştir. Bu seviyeler, strategy.exit() fonksiyonu kullanılarak uygulanır.
İlk işlemde zarar durumunda, Martingale pozisyon boyutlandırma yöntemi kullanılarak sonraki işlemler için alım miktarı 2 katına çıkarılır. Ayrıca, önceki zarar miktarı kadar kar elde edilirse, fazla alınan miktar satılır. Bu, strategy.exit() fonksiyonu kullanılarak gerçekleştirilir.
Lütfen unutmayın, bu sadece bir örnek stratejidir ve gerçek ticaret için uygun olmayabilir. Ticaret stratejileri oluşturmadan önce lütfen kendi araştırmanızı yapın ve stratejinizi geri test edin.
Yer İmleri