Implementing Dynamic Lot Size Adjustment Based on Strategy Performance

14 Oct 2017
0 comment
0 attachment

This ProBuilder code snippet demonstrates how to dynamically adjust the trading lot size based on the performance of a trading strategy. The lot size increases or decreases based on the equity change, aiming to compound gains or reduce risk during drawdowns.


ONCE MyEquity = 10000
ONCE nLots = 1
IF Not OnMarket THEN
    IF Strategyprofit >= (MyEquity * 1.03) THEN
        MyEquity = Strategyprofit
        nLots = nLots + 1
    ELSIF Strategyprofit <= (MyEquity * 0.97) THEN
        MyEquity = Strategyprofit
        nLots = nLots - 1
        nLots = max(1, nLots) //do not allow nLots to fall below 1
    ENDIF
ENDIF

Explanation of the Code:

  • Initialization: The variables MyEquity and nLots are initialized to 10000 and 1, respectively. These represent the starting equity and number of lots.
  • Market Condition Check: The IF Not OnMarket condition ensures that adjustments are made only when not currently in a market position.
  • Profit Evaluation: The code checks if the strategy profit has increased by at least 3% of the current equity (MyEquity * 1.03). If true, it updates the equity to the current strategy profit and increments the lot size by 1.
  • Loss Evaluation: Conversely, if the strategy profit decreases by 3% or more (MyEquity * 0.97), the equity is updated, and the lot size is decreased by 1. However, the max function ensures that the lot size does not fall below 1, maintaining a minimum trading size.

This approach helps in scaling the trading size according to performance, potentially maximizing gains during profitable periods and minimizing losses during downturns.

Related Post

Check out this related content for more information:

https://www.prorealcode.com/topic/compounding-2/#post-69905

Visit Link
What is a Snippet? A snippet is a small, reusable chunk of code designed to solve specific tasks quickly. Think of it as a shortcut that helps you achieve your coding goals without reinventing the wheel. How to Use: Simply copy the snippet and paste it into your project where needed. Don't forget to tweak it to fit your context. Snippets are not just time-savers; they're also learning tools to help you become a more efficient coder.
robertogozzi Master
Roberto https://www.ots-onlinetradingsoftware.com
Author’s Profile

Comments

Search Snippets

Showing some results...
Sorry, no result found!

Snippets Categories

global
35
indicator
133
strategy
171

Recent Snippets

How to Create a Simple MTF Trend Dashboard with EMA and SMA
indicator
This indicator builds a compact multi-timeframe (MTF) dashboard that shows whether price is trading above or below a [...]
How to Display Per-Bar Volume Accumulation in Real Time (Intrabar Updates)
global
This snippet tracks and displays the current bar’s accumulated volume while the bar is still forming, instead of only [...]
Ticks Counter: Count Tick Updates Per Bar on Tick or Time Charts
global
This snippet counts how many tick updates have occurred for the current bar by incrementing a per-bar counter on each [...]
How to Build a Step-Based Trailing Stop That Moves to Break-Even First
strategy
This snippet implements a step trailing stop that advances in fixed increments once price reaches predefined profit [...]
Utilizing Arrays to Track and Compare Indicator Values Within the Same Bar in ProBuilder
indicator
This ProBuilder code snippet demonstrates how to use arrays to compare the values of an indicator (RSI in this case) [...]
Logo Logo
Loading...