458
edits
No edit summary |
No edit summary |
||
(5 intermediate revisions by 3 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."); | ||
// **************** | // **************** | ||
Line 449: | Line 449: | ||
<syntaxhighlight>MyIndicator = ADX of data2;</syntaxhighlight> | <syntaxhighlight>MyIndicator = ADX of data2;</syntaxhighlight> | ||
Then allow trading only in those stocks that have the highest ADX. | Then allow trading only in those stocks that have the highest ADX. | ||
<br> | |||
<div style="background-color: #E3FBE5;">'''Note:''' These signals are given mainly for reference. If you receive some inconsistent results, you can modify the signals according to your needs.</div> | |||
[[Category:Portfolio Trading]] | [[Category:Portfolio Trading]] |