Portfolio Trader Strategy Examples: Difference between revisions
From MultiCharts
Portfolio Trader Strategy Examples (view source)
Revision as of 14:09, 9 September 2016
, 9 September 2016no edit summary
No edit summary |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Download [[Media:Portfolio_Trader_Strategy_Examples.pdf|Portfolio_Trader_Strategy_Examples.pdf]] for regular MultiCharts (PowerLanguage) in '''.PDF''' format. | |||
== Rotation Strategy == | == Rotation Strategy == | ||
Line 62: | Line 62: | ||
==== Portfolio_Rotation_MM Signal ==== | ==== Portfolio_Rotation_MM Signal ==== | ||
The signal is used as a '''Money | The signal is used as a '''Money Management Signal''' in portfolio. This study verifies the indicator values for all the portfolio instruments and manages positions opening. | ||
The number of portfolio instruments for which positions will be opened is set by the user: | The number of portfolio instruments for which positions will be opened is set by the user: | ||
Line 171: | Line 171: | ||
<syntaxhighlight>var: slave_idx(pmms_strategies_get_by_symbol_name(symbolname data2)); | <syntaxhighlight>var: slave_idx(pmms_strategies_get_by_symbol_name(symbolname data2)); | ||
once if 0 > slave_idx then | once if 0 > slave_idx then | ||
raiseruntimeerror(text("specified slave trader on instrument ", doublequote, symbolname data2, doublequote, "not found"));</syntaxhighlight> | raiseruntimeerror(text("specified slave trader on instrument", doublequote, symbolname data2, doublequote, "not found"));</syntaxhighlight> | ||
To synchronize the capital invested into positions for both instruments, we need to send the price of the current position of the main instrument to the pair strategy: | To synchronize the capital invested into positions for both instruments, we need to send the price of the current position of the main instrument to the pair strategy: | ||
Line 276: | Line 276: | ||
<syntaxhighlight>// *** restrictions | <syntaxhighlight>// *** restrictions | ||
once if barstatus(BasedOnData) < 0 then raiseruntimeerror("Portfolio Rank Signal Base needs datastream " + numtostr(BasedOnData, 0)); | once if barstatus(BasedOnData) < 0 then raiseruntimeerror("Portfolio Rank Signal Base needs datastream" + numtostr(BasedOnData, 0)); | ||
once if 1 <> getappinfo(aiisportfoliomode) then raiseruntimeerror("Portfolio Rank Signal Base can be applied to MCPortfolio application only."); | once if 1 <> getappinfo(aiisportfoliomode) then raiseruntimeerror("Portfolio Rank Signal Base can be applied to MCPortfolio application only."); | ||
// **************** | // **************** |