RicardoSantos

[RS]Function Martingale Multiplier - MA Crossover Bias V1

EXPERIMENTAL:
WARNING: Martingale is subject to HUGE drawdown spikes, use at your own risk!

updated function to also double(aply multiplier) on even trades, example with a MA's crossover.
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?
//@version=2
strategy(title='[RS]Function Martingale Multiplier - MA Crossover Bias V1', overlay=false, default_qty_type=strategy.cash, default_qty_value=1000, initial_capital=100000, currency=currency.USD)
wins_multiplier = input(defval=1.00, title='Scaling Multiplier for Consecutive Wins:')
losses_multiplier = input(defval=2.00, title='Scaling Multiplier for Consecutive Losses:')
src = input(close)
fast_ma = ema(src, input(5))
slow_ma = ema(src, input(55))
// Setup trading conditions based on last performed trades performance.
direction = na(direction[1]) ? 1 : crossunder(fast_ma, slow_ma) and direction[1] > 0 ? -1 : crossover(fast_ma, slow_ma) and direction[1] < 0 ? 1 : direction[1]

buy_cond = direction > 0 and strategy.opentrades < 1
sel_cond = direction < 0 and strategy.opentrades < 1

f_martingale_wins_multiplier(_multiplier) => _return = na(_return[1]) ? 1 : change(strategy.losstrades) > 0 ? 1 : change(strategy.wintrades) > 0 or change(strategy.eventrades) > 0 ? _return[1] * _multiplier : _return[1]
f_martingale_loss_multiplier(_multiplier) => _return = na(_return[1]) ? 1 : change(strategy.wintrades) > 0 ? 1 : change(strategy.losstrades) > 0 or change(strategy.eventrades) > 0 ? _return[1] * _multiplier : _return[1]

mode = change(strategy.wintrades) > 0 ? 1 : change(strategy.losstrades) > 0 ? -1 : nz(mode[1], 1)
trade_multiplier = mode > 0 ? f_martingale_wins_multiplier(wins_multiplier) : f_martingale_loss_multiplier(losses_multiplier)

trade_size = input(defval=100, title='Base trade value:')
trade_size_multiplied = trade_size * trade_multiplier

strategy.entry('B', long=true, qty=trade_size_multiplied, when=buy_cond)
strategy.entry('S', long=false, qty=trade_size_multiplied, when=sel_cond)

take_profit = input(defval=250, title='TP in ticks(1/10 of a pip):')
stop_loss = input(defval=100, title='SL in ticks(1/10 of a pip):')
strategy.exit('B', from_entry='B', profit=take_profit, loss=stop_loss)
strategy.exit('S', from_entry='S', profit=take_profit, loss=stop_loss)

plot(series=strategy.equity, title='Equity', color=black, linewidth=2)
plot(series=lowest(strategy.equity, 100), title='Base', color=red)

Comments

How is the script ending with "[" on lines 14 and 15? Or did it just hit a length limit in displaying the lines?
Reply
its hidden behind the scroll bar the ending is
Reply
RicardoSantos RicardoSantos
Reply
RicardoSantos RicardoSantos
""
Reply
RicardoSantos RicardoSantos
cant post the openbracket1closebracket
Reply
kakola RicardoSantos
Thank you!
Reply
Home Stock Screener Forex Screener Crypto Screener Economic Calendar About Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter
Profile Profile Settings Account and Billing Referred friends Coins My Support Tickets Help Center Private Messages Chat Sign Out