Implementing Money Management and Weekend Flat Strategy in Trading Algorithms

22 Feb 2018
0 comment
0 attachment

This code snippet demonstrates how to implement a dynamic money management system and handle positions over the weekend in a trading strategy using ProBuilder language. The money management system adjusts the position size based on the strategy’s profit, and the weekend handling ensures that all positions are closed by Friday night to avoid holding them over the weekend.


once startpositionsize=1
once positionsize=startpositionsize
once flatoverweekends=1
once startequity=0
once Reinvest=1

if reinvest then
    //------------ Fixed fraction money management ----------
    once multiplier=1
    once delta=200 // < == THROTTLE
    once fraction=delta*pipvalue
    once newlevel=delta*pipvalue
    once oldlevel=delta*pipvalue

    if strategyprofit+startequity>newlevel then
        multiplier=multiplier+1
        oldlevel=newlevel
        newlevel=strategyprofit+startequity+multiplier*fraction
        positionsize=multiplier*startpositionsize
    elsif strategyprofit+startequity=2 then
        newlevel=strategyprofit+startequity
        oldlevel=strategyprofit+startequity-multiplier*fraction
        multiplier=multiplier-1
        positionsize=multiplier*startpositionsize
    endif
Endif

if flatoverweekends then
    //--------------- daylight-saving corrections ------------------
    if currentmonth=3 and day>=15 then
        dlc=10000
    elsif currentmonth=11 and day<8 then
        dlc=10000
    else
        dlc=0
    endif

    fridaynight=(currentdayofweek=5 and time>=(223000-dlc))

else
    fridaynight=0
endif

if fridaynight then
    if longonmarket then
        sell at market
    elsif shortonmarket then
        exitshort at market
    endif
endif

The code snippet above includes several key components:

  • Initialization: Sets initial values for position size, whether to flatten positions over weekends, starting equity, and whether to reinvest profits.
  • Money Management: Adjusts the position size based on the strategy’s profit. It uses a fixed fraction method where the position size increases or decreases based on predefined profit thresholds (delta).
  • Weekend Flattening: Includes logic to close all open positions on Friday night before the market closes for the weekend. This is adjusted for daylight saving changes by modifying the closing time.
  • Daylight Saving Time Adjustments: Adjusts the trading cut-off time on Fridays based on daylight saving time changes in March and November.

This example is useful for understanding how to dynamically manage investment size based on performance and how to mitigate risks associated with holding positions over the weekend in financial markets.

Related Post

Check out this related content for more information:

https://www.prorealcode.com/topic/money-management-snippet/#post-70501

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.
Nicolas Master
I created ProRealCode because I believe in the power of shared knowledge. I spend my time coding new tools and helping members solve complex problems. If you are stuck on a code or need a fresh perspective on a strategy, I am always willing to help. Welcome to the community!
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...