PureBytes Links
Trading Reference Links
|
Hello Omega-List,
Sorry about that last "RT" post, I don't know what
went wrong.
The last code I posted was a totally original attempt
at emulating Indigo's MSX the best I could. I did this
by taking the XAverage of the absolute value of
Wilders Swing Index for 5 days, then adding and
subtracting from a zero line to create "trigger" bands
for signaling trades.
I'm told that the code I'm posting here includes the
actual RateOfChange calculation used by Indigo,
according to a couple of experienced Indigo users I
met through the Yahoo club site. I have no way of
knowing if it is in fact - "the real deal".
It was kind of an anti-climax when I was given the
formula. It's pretty simple, although there is a
mathematical curveball thrown in (x1000 & +6). This
was included by the developers perhaps to try and hide
the simplicity of the math (if this is indeed the
formula used by Indigo).
Here is the formula as given to me by SwingTrader97 (A
gentleman named Jim, just to give credit where credit
is due) on the Yahoo site:
Indigo conversion = ( ROC(Index_Price) * 1000 ) + 6
ROC is calculated: (iCL0 / iCL1) - 1
Where: iCL1 = Yesterdays index close
iCL0 = Today's index close
Recommended IBV/ISV values are from 7-50.
IBV/ISV of 7 = .1% move in the data.
IBV/ISV of 50 = 4.4% move in the data.
Enjoy
-L
{ROC FUNCTION}
Inputs: Price(NumericSeries), Length(NumericSimple);
If Price[Length] <> 0 Then
ROC = (Price / Price[Length] - 1) * 1000
Else
ROC = 0 ;
{MSX RT SIGNAL. This is my rendition of the MSX
system, the most popular & widely
traded "model" in the Indigo "grey box" software
package.
**I did not hack into the Indigo program to obtain
this code.
I put this code together after reading publicly
available
information in the support section of Indigo's
website, and at
the Indigo club on Yahoo. According to several
individuals who
are very experienced with Indigo's MSX, the
RateOfChange calculation
used in this code IS the actual math used by the
Indigo program to
generate trades. I have no way of verifying this,
however.**
This code is provided for use in the public domain.
I don't care what you do with it from this point
forth,
you may distribute it freely.
This code provided by Vic Brower. AKA - L
-Set up any individual stock as Data1. High Beta
stocks w/
low market caps' tend to work OK.
-Set up any index as Data2. The Nasdaq COMP tends to
work well w/
Nasdaq stocks.
-Set MaxBarsBack to 2.
-Set the DefaultTradeAmount to DollarsPerTransaction
in the Costs tab.
-Test it on a variety of stock/index combinations and
decide for yourself
if the Indigo software package is really worth $3700
+ dollars.}
Inputs: IBV (7), {Index buy value}
ISV (7), {Index sell value}
SignalSelect(01), {Set @ 1 to trigger off the
index, 2 to trigger off the stock}
IdxSellFiltTog (False), IdxSellFilt
(00), {You can read about these on Indigo's}
PriSellFiltTog (False), PriSellFilt (00),
{website @ www.msindigo.com, or you can}
PriPctSellFiltTog (False), PriPctSellFilt (00),
{look at the code and figure it out.}
ProfTrgtPct (9999) ; {Profit target percentage}
Variables: ROCh (00),
IndConv (00),
IxSelDisable(00),
PrSelDisable(00),
PrPctSelDisable(00);
{***********************************************************************}
{Momentum value for Data2
*********************************************}
If SignalSelect < 2 then begin
ROCh = ROC(Close of Data2, 1) ;
End;
If SignalSelect > 1 then begin
ROCh = ROC(Close {of Data1}, 1) ;
End;
{***********************************************************************}
{Condition & Variable
values********************************************}
IndConv = ROCh + 6 ;
{Buy Condition}
Condition1 = IndConv >= IBV ;
{Sell Condition}
Condition2 = IndConv <= Neg(ISV) ;
{Index Sell Disable}
If IdxSellFiltTog = True then begin
If (C of Data2)[01] > Highest(C of Data2,
IdxSellFilt)[02] AND
(C of Data2)[00] > (Low of Data2)[01] then
IxSelDisable = 01 else IxSelDisable = 00 ;
End ;
{Price Sell Disable}
If PriSellFiltTog = True then begin
If Close[01] > Highest(Close, PriSellFilt)[02] AND
Close[00] > Low[01] then
PrSelDisable = 01 else PrSelDisable = 00 ;
End ;
{Price percent Sell Disable}
If PriPctSellFiltTog = True then begin
If Close > (Close[1] + (Close[1] * (PriPctSellFilt /
100))) then
PrPctSelDisable = 01 else PrPctSelDisable = 00 ;
End ;
{***********************************************************************}
{Market Entries
********************************************************}
{Buy signal}
If Condition1 then Buy this bar on close ;
{Sell signal}
If (IxSelDisable + PrSelDisable + PrPctSelDisable) =
00 AND
Condition2 then Sell this bar on close ;
{***********************************************************************}
{Market Exits
**********************************************************}
{ProfitTarget}
If MarketPosition = 01 then begin {If we are currently
long}
ExitLong at EntryPrice + (EntryPrice * (ProfTrgtPct /
100 )) Limit ;
End ;
If MarketPosition = -01 then begin {If we are
currently short}
ExitShort at EntryPrice - (EntryPrice * (ProfTrgtPct
/ 100 )) Limit ;
End ;
{Exit all positions on last bar}
If LastBarOnChart then begin
ExitLong this bar on close ;
ExitShort this bar on close ;
End ;
Attachment:
Description: "MSX RT.ELA"
|