TS strategies I found on the net/magazines/etc

trading strategies and money management discussion, code, results

Moderator: moderators

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

TS strategies I found on the net/magazines/etc

Postby blr121970 » Sun Jun 11, 2006 8:07 pm

I would like to have this thread where I will post all strategies that I found on the net or other places.

This is so that I will not clutter the forum with one strategy per thread.

Hope Michal will be OK with this.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 8:12 pm

The following web site has many TS strategies
(and for other applications as well):

XEA Trade

I liked the Williams 19 by Larry Williams strategy:

Williams 19

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 8:33 pm

This is the RSI Pivot system originally posted by Orc and then
modified by eKam on the TS forum. Gives some interesting results on @ES/@ER2.

Explanation of the strategy (as explained by eKam, copied verbatim):


From reading the code, apparently this indicator plots two kinds of buy
signals. Pivot-sB is a "significant buy" (based on divergence), whereas
Pivot-B is a normal buy (based solely on RSI being "too low").

It seems that Pivot-B has lower reliability for a counter trend signal
during strong trend, whereas both are useful during a range bound
market.

This code is obviously a stripped down version of something more
complete. I sure hope that that's why it does not plot exit signals, or to
plot short signals. Obviously it was posted here in the hope that you will
go visit their web site and buy something, but the code is educational
nevertheless. I will probably use it to build my own complete RSI based
buy/sell indicator.

Note that being an oscilator, traditional use of RSI gives counter trend
signals based completely on absolute values of RSI below which to go
long (and vice versa for shorts), doing so is not a very reliable signal
during a strong trend. Instead of relying on a fixed value to call an RSI
reading "too low" to issue buy signals, this indicator subtracts from 60
an adaptive threshold value based on a multiplier value of 1.68 from the
average RSI value of the last 50 bars.


Topic 13560

Posting the code for people who do not have access to the TS forums

Code: Select all

[LegacyColorValue = true];

{***********************************************************************
Indicator..........: Power RSI Pivot by FEDSignal.com
Destination........: Counter-Trend System
E-Mail.............: info@fedsignal.com
Last Modified Date.: 06/26/2003
Type Signals.......: Only RSI Pivot
Interval Settings..: Tick Bar, Volume Bar, TimeBar.
Aplication.........: RadarScreen 7.XX, TradeSation 7.XX
RadarScreen®, TradeSation® are registered trademarks of TradeStation Technologies, Inc.
*************************************************************************}

{
 Orc,  6/27/2003 - posted on
                   https://www.tradestationworld.com/discussions/topic.asp?TOPIC_ID=13560
 eKam, 6/29/2003 - code cleaned up
                 - added short signals
 ekam, 7/26/2003 - plot support / resistence lines
                 - added reverse divergence signals
 ekam, 7/30/2003 - added alerts in the style of combs and RalphP
 }

Input:
      Length(7),price((o+c)/2),
      siElookup(3);

var:
    k_15(15), k_50(50),
    RSIWAvg(0),
    lastRSIAtPivotLo(0),lastPriceAtPivotLo(0),lastLoAtPivotLo(0),
    lastRSIAtPivotHi(0),lastPriceAtPivotHi(0),lastHiAtPivotHi(0);

{ figure out long/short threshold }
var:
    idx(0), RSIAvg(0),
    longThreshold(0),shrtThreshold(0),
    _RSI(0);

var:
    alertTextID(-1);

Var: {Signals siB: RSI Buy , siS: RSI Sell,
      1: Significant Signal
      2: Worth Noting
      3: Rev Divergence   }

   siB1(""), siS1(""),
   siB2(""), siS2(""),
   siB3(""), siS3(""),
   si1LE(""), si2LE(""), si3LE(""), siLE(""),
   si1SE(""), si2SE(""), si3SE(""), siSE(""),
   mrosiLE(0), mrosiSE(0) ;      

siB1 = "." ; siB2 = "." ; siB3 = "." ;
siS1 = (".") ; siS2 = (".") ; siS3 = (".") ;

{ ................................................................................ }

if barnumber = 1 then begin
   alertTextID = Text_New(date,time,0,"RSI");
end;

_RSI =  RSI(Price,Length);
RSIAvg  = Average(_RSI,k_50);
longThreshold = 60 - (100-RSIAvg)/1.68;
shrtThreshold = 40 + (RSIAvg)/1.68;
RSIWAvg  = WAverage(RSI(Price,Length),3);

   {
{ drawing related variables }
var: lngDiverColor(Cyan),lngRSIColor(darkCyan),lngRevDiverColor(Blue);
var: srtDiverColor(Magenta), srtRSIColor(darkMagenta), srtRevDiverColor(Red);
   }
{ ................................................................................ }
{ Long signal .................................................................... }
{ ................................................................................ }
   
if RSIWAvg[1] < RSIWAvg and
   RSIWAvg[1] < RSIWAvg[2] and
   RSIWAvg[2] < RSIWAvg[3] and
   RSIWAvg[3] < RSIWAvg[4] then
{ ................................................................................ }
begin { last bar was a RSI pivot low - Significant - siB1 ........................ }
{ ................................................................................ }

      If RSIWAvg[1] < (longThreshold + k_15) and { RSI was "low enough" }
         Price < lastPriceAtPivotLo and { price was higher in last RSI pivot low, but }
         lastRSIAtPivotLo < _RSI then   { RSI   was lower => divergence }
         siB1 = "Y" ;

{ ................................................................................ }
{ No divergence, but RSI very low, and so it's worth noting - siB2 ............... }
{ ................................................................................ }   
   
         If RSIWAvg[1] < longThreshold then
      siB2 = "Y" ;
   
{ ................................................................................ }
{ Reverse Divergence - siB3 ...................................................... }
{ ................................................................................ }

   If RSIWAvg[1] > (shrtThreshold - k_15) { RSI was "high enough" }
      { a pivot low while RSI reading is high, look for rev divergence }
      and Price > lastPriceAtPivotLo     { price was higher in last RSI pivot low, but }
      and lastRSIAtPivotLo < _RSI then   { RSI was lower => rev divergence }
     siB3 = "Y" ;

{ ................................................................................ }
   lastPriceAtPivotLo = Price;
   lastLoAtPivotLo    = L;
   lastRSIAtPivotLo   = _RSI;
{ ................................................................................ }
end;
{ ................................................................................ }

{ ................................................................................ }
{ Short signal ................................................................... }
{ ................................................................................ }
   
If RSIWAvg[1] > RSIWAvg and
   RSIWAvg[1] > RSIWAvg[2] and
   RSIWAvg[2] > RSIWAvg[3] and
   RSIWAvg[3] > RSIWAvg[4] then
{ ................................................................................ }
begin { last bar was a RSI pivot high - Significant - siS1 ....................... }
{ ................................................................................ }

   If RSIWAvg[1] > (shrtThreshold - k_15) and { RSI was "high enough" }
      { RSI high enough for a pivot high, look for divergence }
      Price > lastPriceAtPivotHi and { price was higher in last RSI pivot high, but }
      lastRSIAtPivotHi > _RSI then   { RSI   was higher => divergence }
      siS1 = "Y" ;

{ ................................................................................ }
{ No divergence, but RSI very low, and so it's worth noting - siS2 ............... }
{ ................................................................................ }

   If RSIWAvg[1] > shrtThreshold then
           { no divergence, but RSI very high, and so it's worth noting }
    siS2 = "Y" ;

{ ................................................................................ }
{ Rev divergence - siS3 .......................................................... }
{ ................................................................................ }
   
   If RSIWAvg[1] < (longThreshold + k_15) and { RSI was "low enough" }
      { a pivot high while RSI reading is low, look for rev divergence }
      Price < lastPriceAtPivotHi and { price was lower in last RSI pivot high, but }
      lastRSIAtPivotHi > _RSI then   { RSI   was higher => rev divergence }
   siS3 = "Y" ;

{ ................................................................................ }
   lastPriceAtPivotHi = Price;
   lastHiAtPivotHi    = H;
   lastRSIAtPivotHi   = _RSI;
{ ................................................................................ }
end;
{ ................................................................................ }
   
{ ................................................................................ }   
{ Utility Signals for easy printing and order entry .............................. }   
   
If siB1 = "Y" and siB1 <> siB1[1] then si1LE = "Y" else si1LE = "." ;
If siB2 = "Y" and siB2 <> siB2[1] then si2LE = "Y" else si2LE = "." ;
If siB3 = "Y" and siB3 <> siB3[1] then si3LE = "Y" else si3LE = "." ;

If    si1LE = "Y" or si2LE = "Y" or si3LE = "Y" then
   siLE = "Y" else siLE = "." ;

If siS1 = "Y" and siS1 <> siS1[1] then si1SE = "Y" else si1SE = "." ;
If siS2 = "Y" and siS2 <> siS2[1] then si2SE = "Y" else si2SE = "." ;
If siS3 = "Y" and siS3 <> siS3[1] then si3SE = "Y" else si3SE = "." ;

If    si1SE = "Y" or si2SE = "Y" or si3SE = "Y" then
   siSE = "Y" else siSE = "." ;

{ ................................................................................ }
{ Order Entry .................................................................... }
{ ................................................................................ }

If siLE = "Y" and siLE <> siLE[1] and mrosiSE < 0 then
   
   if si1LE = "Y" then
   Buy ("si1.L") next bar at close this bar Limit

   else if si2LE = "Y" then
   Buy ("si2.L") next bar at close this bar Limit

   else if si3LE = "Y" then
   Buy ("si3.L") next bar at close this bar Limit ;

mrosiLE = MRO(siLE = "Y", siElookup, 1) ;

{ ................................................................................ }

If siSE = "Y" and siSE <> siSE[1] and mrosiLE < 0 then
   
   if si1SE = "Y" then
   Sell Short ("si1.S") next bar at close this bar Limit

   else if si2SE = "Y" then
   Sell Short ("si2.S") next bar at close this bar Limit

   else if si3SE = "Y" then
   Sell Short ("si3.S") next bar at close this bar Limit ;

mrosiSE = MRO(siSE = "Y", siElookup, 1) ;

{ ................................................................................ }



 
{
 the original code follows:
}
{
Input:Length(7);

Vars:   Condition99(FALSE),
        Value8(15),
        Value3(50);

Value1  = WAverage(RSI(Close,Length),3);
Value2  = 0;

{ ................................................................................ }
{ ................................................................................ }
{ ................................................................................ }
For Value7 = 0 to Value3
Begin
        Value2 = Value2 + RSI(Close,Length)[Value7];
End;

Value4  = Value2/(Value3-1);

Value5  = 100 - (100-Value4)/1.68;
Value6  = Value5 - 40;

If Value1[1] < Value1 and Value1[1] < Value1[2] and Value1[2] < Value1[3] and Value1[3] < Value1[4] then
Begin
        If Value1[1] < (Value6 + Value8) and Value9 > (Open + Close)/2 and Value10 < RSI(Close,Length) then
        Begin
        Plot1(L-C*0.001,"Pivot-sB");
        Condition99 = FALSE;
        Value9 = (Open + Close)/2;
        Value10 = RSI(Close,Length);
        End
        Else
        Begin
        If Value1[1] < Value6 then
        Begin
                Plot2(L-C*0.001,"Pivot-B");
        Condition99 = TRUE;
        Value9 = (Open + Close)/2;
        Value10 = RSI(Close,Length);
        End;
        End;
End;
 
}
Last edited by blr121970 on Sun Jun 11, 2006 9:55 pm, edited 3 times in total.

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 9:00 pm

Attachments
percentR-ER2.PNG
Percent R System Indicator
percentR-ER2.PNG (34.75 KiB) Viewed 8750 times
Last edited by blr121970 on Sun Jun 11, 2006 9:53 pm, edited 1 time in total.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1048
Joined: Sat May 13, 2006 2:40 am
Reputation: 36
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

Re: TS strategies I found on the net/magazines/etc

Postby michal.kreslik » Sun Jun 11, 2006 9:33 pm

blr121970 wrote:I would like to have this thread where I will post all strategies that I found on the net or other places.

This is so that I will not clutter the forum with one strategy per thread.

Hope Michal will be OK with this.


Great!

Why shouldn't I be OK with this? :) These forums are set up so that Avery and other honest people don't have to fall in line with TS forum police any more.

Indeed, there won't ever be any forum police here :) The only users that will get into trouble here are nasty spammers. :smt071

It would be great if you posted a brief description along with every link to a strategy you post here in this thread.

Michal

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 9:47 pm

Thanks Michal.

I will add an explanation for each strategy.

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 10:12 pm

The following URL has a lot of indicators and systems, but unfortunately for MetaTrader only:

http://www.lightpatch.com/forex/mt_yahoo/

Can someone using MetaTrader please try out a few of the systems there, like for example:

ASC++ Expert

and let me know if there are any systems worthwhile so that I can port them to TS?

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Sun Jun 11, 2006 11:19 pm

OK now for the world-famous :lol: TTM squeeze strategy.

Explanation of Indicator/Strategy:

For an explanationof the TTM squeeze (and trend) indicator and strategy
please review the following videos (WARNING: you will need the Macromedia Flash Plugin):

squeeze

ttmtrend

5minsqueezechecklist

CBOT seminar by Hubert Senters (the voice in the previous videos)

Note: The strategy is not perfect - because it does not exit in certain conditions mentioned by Hubert
in the 5minsqueezechecklistchicago video - but it is a starting point nevertheless.

The location of the main thread in TS forum:

Topic_ID 14439
Attachments
TTMTRENDANDSQUEEZE.ELD
TTM Trend &amp; Squeeze Indicator, PaintBar and Strategy
(12.45 KiB) Downloaded 565 times
TTMTRENDANDSQUEEZE.PNG
TTM Indicators &amp; Strategy
TTMTRENDANDSQUEEZE.PNG (33.63 KiB) Viewed 8729 times

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Thu Jun 15, 2006 4:49 am

Strategy : Thomas Stridsman's Medians On The Move
Explanation: See Active Trader, March 2006, p. 28

Traders' Studio code by Mr. Stridsman:

Code: Select all

Sub AtmMarch (LookBack, DaysInTrade As Integer, LossMult As Double)
'Copyright (C), 2005: Thomas Stridsman
'Created with Traders' Studio, Version 1.3.4

Dim MyArray As Array
Dim Counter, ArraySize, ArrayMidPoint As Integer
Dim MinMove, EP, HC As Double
Dim ATR, MyTypical As BarArray(50)

MinMove = GetActiveMinMove()
ATR = Average(TrueRange, LookBack, 0)

ArraySize = LookBack * 2
ReDim(MyArray, ArraySize)
For Counter = 0 To (LookBack - 1) Step 1
  MyArray[Counter * 2 + 0] = Close[Counter]
  MyArray[Counter * 2 + 1] = Close[Counter]
Next
NumSort(MyArray)

ArrayMidPoint = ArraySize / 2

MyTypical = (MyArray[ArrayMidPoint-1] + MyArray[ArrayMidPoint]) /2
'SUBSTITUTE WITH THIS TO RUN MA SYSTEM: MyTypical = Average(Close, LookBack)

If Close < MyTypical Then
  Buy("Buy", 1, MyTypical + MinMove, Stop, Day)
End If

If MarketPosition = +1 Then
  EP = GetEntryPrice(0)
  HC = Highest(Close, BarsSinceEntry, 0)
  ExitLong("XL-L", "Buy", 1, Max(EP, HC) - LossMult * ATR - MinMove, Stop, Day)
  If BarsSinceEntry >= DaysInTrade Then
    ExitLong("XL-T", "Buy", 1, 0, Market, Day)
  End If
End If

End Sub
Attachments
THOMAS-STRIDSMAN-MEDIANS.ELD
Medians On the Move strategy for TS
(5.09 KiB) Downloaded 472 times

User avatar
blr121970
rank: <50 posts
rank: <50 posts
Posts: 23
Joined: Mon May 22, 2006 1:55 am
Reputation: 0
Location: Irvine, California
Gender: Male

Postby blr121970 » Fri Jun 16, 2006 9:44 pm

The recording of the CBOT online seminar Trading Systems that Work: The Idea Behind Developing A Proprietary Indicator
with Thomas Stridsman on June 13, 2006 is available at:

Seiminar: Trading Systems that Work: The Idea Behind Developing A Proprietary Indicator

The PDF of the presentation slides is at:

PDF of presentation slides

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.


Return to “strategy trading & money management”