Understanding Portfiolo and trade management of single and multiple strategies

Discussion in 'Risk Management' started by Murray Ruggiero, Nov 20, 2010.

  1. Murray Ruggiero

    Murray Ruggiero ET Sponsor

    I have seen some interest in combining multiple trading strategies in this forum and questions about how or if that approach helps reduce risk and improve returns. In this thread we will discuss these issues and apply real examples of how to use this approach.
     
  2. Should be interesting...
     
  3. 0008

    0008

    please give some real trades as example
     
  4. Do you want to combine multiple intra-day trades or multiple position/swing trades or some combination of both?

    Position management is going to be difficult if you are overlaying multiple strategies in the same account as you will need to look at trades as buying/selling to open/close (almost like options).
     
  5. nLepwa

    nLepwa

  6. You may as well just have an index fund if you're going to do "that". :(
     
  7. Murray Ruggiero

    Murray Ruggiero ET Sponsor

    What do you think this approach produces low returns? If that is what your thinking your totally wrong. Combining multiple systems does not decrease returns only drawdowns if you pick uncorrelated systems. I have developed many different portfiolo of systems and markets which have MAR ratio's and Sharpe ratio's better than 1.
     
  8. It's an approach that works for me. Interesting that this is under trade management because that is clearly my weak point. Rather then try to manage the individual trades I keep the entry and exit criteria very simple so I can take a lot of trades at once, across multiple strategies. It makes my portfolio more scalable and less susceptible to some adverse event in any particular trade. Because I trade stocks long and short I don't worry too much about what the market does.
     
  9. Murray Ruggiero

    Murray Ruggiero ET Sponsor

    Let's now discuss the concept of trading a larger portfiolo and limited the number of trades which can be open at one time to a given number. TradersStudio has two major concepts, session and tradeplans. Sessions are one system run on one or more markets. Tradeplans are a meta control of session, sessions run one bar at a time and then control is passed to the tradeplan. It has access to all the market and session objects. It can modify orders and place new orders.


    You can see below an example tradeplan which trades a large stock portfiolo and limits open positions. It is also limited to a 1 position per day.



    ' This tradeplan limits the number of open positions based on ranking
    'TradersStudio 2009-2011 all rights reserved
    Sub TSPro_StockCustomPerAdvanced(MaxPositions)
    Dim M As Integer
    Dim Index As Integer
    Dim SessCount As Integer
    Dim DollarsPerTrade
    Dim Rating
    Dim CustPer As Array
    If TradePlan.MarketType <> 3 Then
    MsgBox ("This trade plan can only be run on a TradersStudio Stock Plan")
    StopRun
    End If

    SessCount = TradePlan.SessionCount

    For Index = 0 To SessCount - 1
    DollarsPerTrade = TradePlan.SummEquity / MaxPositions
    TradePlan.Session(Index).UnitSize = 1

    CustPer = MyCustomPerformanceEx(Index)


    TradePlan.Session(Index).SetCustomPerformanceEx(CustPer)
    TradePlan.Session(Index).RankingType= Ordinal

    ' For each session Loop though the trading plans.
    For M = 0 To TradePlan.Session(Index).MarketCount - 1
    Rating = TradePlan.Session(Index).GetCustomPerformanceRankEx(TradePlan.Session(Index).Market(M).Symbol(0))

    Dim iGlobalCount,iActiveOrderCount
    TradePlan.Session(Index).SuperCustomRank(TradePlan.Session(Index).Market(M).Symbol(0),iGlobalCount,iActiveOrderCount)
    If tradeplan.OpenTradeCount <MaxPositions Then

    If iActiveOrderCount=1 And iGlobalCount<MaxPositions Then
    TradePlan.Session(Index).Market(M).EntryNumUnits = Floor((DollarsPerTrade) / TradePlan.Session(Index).Market(M).Data(0, "TSCLose", 0))
    Else
    TradePlan.Session(Index).Market(M).EntryNumUnits = 0
    End If
    End If
    TradePlan.Session(Index).Market(M).ExitNumUnits = TradePlan.Session(Index).Market(M).NumContractsHeld
    Next
    Next
    End Sub

    Here is a custom ranking function it used in the code above. It's also used so we only rank markets with a active entry.

    Function MyCustomPerformanceEx(Index As Integer) As Array
    Dim MCount As Integer
    Dim CustomPer As Array
    Dim count As Integer

    MCount = TradePlan.Session(Index).MarketCount

    ReDim(CustomPer, MCount, 3)

    For count = 0 To MCount - 1
    ' If TradePlan.Session(Index).Market(count).HasActiveOrder = True Then
    CustomPer[count, 0] = TradePlan.Session(Index).Market(count).Symbol(0)
    CustomPer[count, 1] = TradePlan.Session(Index).Market(count).Data(0, "TSCLose", 0)/TradePlan.Session(Index).Market(count).data(0, "TSCLose", 40)
    CustomPer[count, 2] =TradePlan.Session(Index).Market(count).IsActiveOrders(False)

    'EndIf
    Next

    MyCustomPerformanceEx = CustomPer
    End Function
     
  10. Murray Ruggiero

    Murray Ruggiero ET Sponsor

    Any questions ?. I will be covering more topics in a few days.
     
    #10     Dec 13, 2010