Le joueur de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de l'équipe de football de football de l'équipe de football de l'équipe de football de football de l'équipe de football de l'équipe de football de l'équipe de football de football de l'équipe de football de football de l'équipe de football de football de l'équipe de football de football de l'équipe de football.

Auteur:Z3192, Date: 2023-10-16 17h45 et 49 min
Les étiquettes:



//@version=4
strategy("Bollinger Bands %B Crossover", overlay=true,pyramiding = 5)

// Load Bollinger Bands %B indicator
source = input(close, title="Source")
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.001, maxval=50, title="Multiplier")
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bb = (source - lower) / (upper - lower)

// Define long and short conditions
longCondition = crossover(bb, 0)
shortCondition = crossunder(bb, 1)

// 马丁格尔策略参数
useMartin = input(true, title="使用马丁格尔倍投")
initialQty = input(0.001, title="初始仓位大小")
martinFactor = input(2, title="马丁格尔倍数")
// 止盈止损
profitTarget = input(1.5, title="止盈倍数")
stopLoss = input(0.95, title="止损倍数")
//定义触发加仓的百分比
dropPercentage=10
//计算当前持仓总成本
totalCost=strategy.position_avg_price*strategy.position_size
//计算当前持仓盈亏
profitLoss=(close-totalCost)/totalCost*100



// 买入条件满足时,产生买入信号,并设置止盈
if (longCondition)
    strategy.entry("Buy", strategy.long)
     if useMartin
//判断是否需要加仓
if profitLoss<=-dropPercentage and strategy.position_size >0
        strategy.order("Buy1", "Buy",qty=strategy.position_size * martinFactor,when=strategy.long )
if strategy.position_size >0
        strategy.exit("Take Profit/Stop Loss", "Buy", profit=strategy.position_avg_price  *profitTarget )

// 卖出条件满足时,产生卖出信号,并设置止盈
if (shortCondition)
    strategy.entry("Sell",strategy.short)
     if useMartin
//判断是否需要加仓
if profitLoss<= -dropPercentage and strategy.position_size <0
       strategy.order( "Sell2","Sell", qty=strategy.position_size * martinFactor,when=strategy.short)
if strategy.position_size <0
       strategy.exit("Take Profit/Stop Loss", "Sell", profit=strategy.position_avg_price  *stopLoss )




Plus de