PriceActionSwing discussion - futures io
futures io

PriceActionSwing discussion

Discussion in NinjaTrader

      Top Posters
    1. looks_one Silvester17 with 177 posts (570 thanks)
    2. looks_two dorschden with 97 posts (1,076 thanks)
    3. looks_3 Big Mike with 52 posts (90 thanks)
    4. looks_4 sudhirc with 47 posts (80 thanks)
      Best Posters
    1. looks_one dorschden with 11.1 thanks per post
    2. looks_two Silvester17 with 3.2 thanks per post
    3. looks_3 Big Mike with 1.7 thanks per post
    4. looks_4 sudhirc with 1.7 thanks per post
    1. trending_up 785,236 views
    2. thumb_up 2,869 thanks given
    3. group 568 followers
    1. forum 2,003 posts
    2. attach_file 588 attachments

Welcome to futures io: the largest futures trading community on the planet, with well over 150,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

Search this Thread

PriceActionSwing discussion

(login for full post details)
  #1 (permalink)
Experience: Master
Platform: NinjaTrader
Posts: 110 since Jun 2009
Thanks: 54 given, 1,095 received

Any comments and suggestions are welcome!

Please discuss the PriceActionSwing (PAS) indicator in this thread. Any comments or suggestions are more than welcome here. If you have a more private issue send me a PM or better an Email (you'll find the address in the top of the PriceActionSwing.cs script). Discussion about the newest version started here (last update 05.06.2014).

Download PriceActionSwing

Market analyzer template
You can download a market analyzer template in this post. It contains ABC signals, swing trend direction and divergence signals.

Strategy development
In this post you find a strategy sample code snippet which shows how to use the swing trend in a strategy. Start reading at "strategy development".


The PriceActionSwing calculates swings in different ways and displays all kind of information about the swings above and below them. If you just want to visualize swings then you should use this version.

There is also a PriceActionSwingPro version that contains in addition to the normal version some features which are all off at default. The features are:
- Draw automatically Fibonacci extensions and retracements
- Calculate a swing statistic
- Calculate and visualize ABC patterns
- Risk management (automatically for ABC patterns)
- Calculate and visualize divergence based on an indicator
- Use @gomi's most outstanding cumulative delta work for swings


Every setting in the NinjaTrades's indicator menu has a short description. Here is a short list of the more important ones.


Double top/-bottom strength:
Represents the double top/-bottom strength. Increase the value to get more double tops and -bottoms.

Swing size:
Represents the swing size. e.g. 1 = small swings and 5 = bigger swings. Which size you use depends on your trading style. There is no best setting for everybody.

Swing type:
Represents the swing type. In the "Standard" swing type a new swing is found when price is above or below the high or low of the last N bars and N = Swing size. The "Gann" type is calculated based on Gann's rules for swings.

Swing values:

Here you can choose which information the swings should display.
- Duration (in bars)
- Labels (HH, HL,)
- Length (in ticks, points,)
- Percentage (in relation to the last swing. e.g. 100% = DT/DB)
- Time
- Volume (Absolute and relative. Relative is the average volume per bar)

Swing visualization type:
Represents the swing visualization type. Dots | Zig-Zag lines | Dots and lines | Gann style. E.g. if you want only dots to visualize the swings choose "Dots".

Visualize swings/patterns:

Here you can choose your own look and feel for the visualization of the swings and the patterns.

Swing features:

Here you can turn the features on and off.

Swing Length shows the up and down swing length in ticks. The "Last Length" column is the average of the last N swings and N = "Statistic number of swings".

Swing relation for a specific swing (first column) the percentage amount of swings that follow this specific swing. E.g. the values of the first row (Higher High) are:
Swing Count Higher High Lower High Higher Low Lower Low
48 47,9% 52,1% 72,9% 22,9
Then you can interpret this as a Higher High is followed in 72,9% of all cases by a Higher Low and only in 22,9% by a Lower Low. 72,9% + 22,9 % = 95,8%. The remaining amount is for a double bottom.

Risk management:
You can use this feature for to calculate the your trade quantity and see the risk reward ratio and/or you can use it to trade the ABC pattern. Set your trading capital in "Account size" and your risk in "Account risk per trade".


Here you can set all settings to display a divergence in the chart.

Div indicator:
Represents the indicator for the divergence calculations. You can add one or more indicators in the source code under the value "custom". Here you find instructions how to create divergence signals based on a freely chosen indicator.

Param1, Param2, Param3
Represents the first parameter for the indicator you choose. E.g. the standard MACD(12,26,9) would be
Param1 = 12
Param2 = 26
Param3 = 9.


To use cumulative delta for the swings or divergence you have to uncomment all GomCD regions in the source code. Press "ctrl + F" or the "Find/Replace" button and search for "region GomCD" and uncomment all the regions and compile it. Of course you have to install the Gom package before.

The PAS indicator is very useful to see and trade pure price action with HH, HL in up trends and LL, LH in down trends and you can easily identify swing patterns like M, W, wedged, HS,

New NT7 statistic panel

Swing labels

Any comments and suggestions are welcome!




PriceActionSwing was nominated for the Best Indicator Of The Year for 2011, and won 1st place (Gold).



PriceActionSwing was nominated for the Best Indicator Of The Year for 2010, and won 3rd place (Bronze).

You can see all the results here: Best Of Trading 2010 - Big Mike Trading

Attached Thumbnails
Click image for larger version

Name:	6E 06-10 (6 Range) 04.05.2010.png
Views:	6696
Size:	172.9 KB
ID:	12991   Click image for larger version

Name:	AAPL 13_09_2007 - 07_05_2010 (Daily).png
Views:	7873
Size:	115.4 KB
ID:	12992   Click image for larger version

Name:	ParameterList.png
Views:	9702
Size:	97.9 KB
ID:	12993  
Started this thread Reply With Quote
The following 369 users say Thank You to dorschden for this post:
2bwize, 4X77, 4xmaster, ab456, Abde, adamt, adewes, adrianjm, Aegis, akwash, Alexander Savin, alexc, AlexSobol, alshir827, Anatta, Angel, anituchka, anniebee321, ap29680, ArbTrader, arbuthnot, asherrizwan, Ashtreegambler, astra, augusta, autotrader8, aventeren, Barrosco, bdd069, Bengaltiger, bergenrain, Bernd, bernoulli, BetMore, beursindex, Big Mike, billgreen3, Blackburn, blackhud, Blonde, bluecrow, bms71, Bondi9999, Boomerang, br8080, Braulio, brwdbill, bsternfeld, Buscador, Cachevary, cal1152, Camdo, Cancer0s, capsmart, captainboom, carlitus1234, cazimi, cclsys, cejstrup, chakspin, charleyfarley, cheapboy, Cheech, chemmala, ChrisvanderBerg, CL19, ClausZ1, Corman, crisscross, d1david, dakine, dalebru, DarrenH, DaveTrading, day61, Daytrader999, DAYTRADERPROFESIONAL, Daza73, dbarno, deachne, deandavis, dee50, deepakmadan, Deetee, deflee, deltason, Denny2009, devdas, djkiwi, djoyce854, dnkhoward2, don10, Donald, drmartell, dstrader, DWCJ, dwntik5454, dwt51, easyeasy, ebtrader008, edepa, EdgeExecution, Elite Trader, elyt, emerson, emily28, Enki, Epistemophilic, ericson, Eris, EssDigs, everlover, EvgenyK, evolernet, facudb, fastpalo, Fat Tails, Fatfish, Felix trader, fish, Flatman, Forito, fskhan, Fu510n, fusion, futurestradermark, fxmen, ganamide, Ganymed, GAP180, gary9, Genshin, glory110, goldenriver, grahamg, grahamp, Greendomer95, greentree, gtichauer, GwaiZaiTrader, Gzalazar, hadamkov, hallem, harry737, hautetoddy, Hayles76, Heph333, hilo2525, hizu, hoolio, icelandicstorm, iceman4248, icog, IequalsS, ignacio90, indianbuckeye, Jaap8242, Jaba, jackm, jacters, jastrade, jceg1110, Jeff Castille, jeremy3s, jethro, jhudas88, JK1970, jlwade123, jmsUK, Jo Moreau, joe888, JohnGump, JohnnyCash, jonathan59, joobeng, jordis, jossfx, Joules360, jtrade, judokamak, jwhtrades, kabott1, kajasp, kaltrax, kareem40, KennyK, kingfish88, kmac, konsistencia, kvankuren, LA Trader, LaissezFaire, lavender, Lee77, Lejcus, leonex, lincor, LoanShark, lonestarAK, Lorien73, loschle, Luigsosa, luisf, madLyfe, maggtrading, mariab, MarianoRA, marker, marketp, MarkG, master trader, matthew1182, matthoffman, Maxie, Maza, md1933, mehrshadspeed, MeowMeowy, MetalTrade, mgregor, micprice, mikky182, MKaiser, Momozo, monsieur, mosafer, mrblaze, Mtype, Muratello, MurphyCZek, mystiq, nanobiotech, Nero00, NeverNo, NEXUS851, NGtrader, Nicolas11, nightshift, NJAMC, NoMagic, noobforlyfe, Norbuilt, nothingbutprofits, Obelixtrader, olobay, omaha786, onenonly, OpalDragon, Optiondreamer, outerspace, panama, PandaWarrior, panjm, papaguena, papamo44, Patrick17, PDQuig, pedrobraz, pepbosch, Pepperdog, Peresai, Pharmakon, photog53, PiotrP, pip29, pipandrun, PipBandit, pktrader, Popsicle, Portland, prby78, project belgrade, psb1967, puma, rainbowchaser, raj20in, redratsal, resirca52009, resist, rfiske, rickr, rimartin, robertchristi41, Roberto Bnvdz, Ruffcut, Rui S, S trader, sabrinavvv, sairamss, samironthemove, sandptrader, ScottyA, sdat, sebolek1978, seeker, Serninja, sethbutrue, Sezor, shaft5150, ShatteredX, Shivaya, Silvester17, SirNicolaus, skann, snakedoctor, snegovik, sola, Sonofapip, spark22, spezicom, Srq1, stealth38, StefanoR, steveg, steven2, stocks29, stoicbuddha, sudhirc, Sunil P, sunshnpeg, Swizzle, Target, tbird, tbondtrader, tct0909, texastodd, TheStyg, thevfutio, thomasblake, timendaGain, titusmaniera, tony2604, tonybertoni, tornadoatc, toughiee, Trad3r, trade65, TradeAction, trademe1, trader2012, traderarg, traderhas, tradernikki, TradingVictor, trendfly, Turtrend, UnknownKnown, urghan2, uzzo, Vajce18, Vasilis, vevelo, vicky2005, VictorK, Victory Trader, wahn, warlock, wavestrader, welly192, wgreenie, whatnext, williamkao, wwlacey, wwwingman, xtrader111, zakmic, Zen Trader, zt379, ztekinos

Can you help answer these questions
from other members on futures io?
Spreadsheet with metrics formulas
Traders Hideout
long term analysis of futures contracts
Traders Hideout
value chart indicator by sim22
MTF Moving Average Indicator for nt8?
The Elite Circle
Best Threads (Most Thanked)
in the last 7 days on futures io
Most Funding Firms are a Scam
68 thanks
Spoo-nalysis ES e-mini futures S&P 500
22 thanks
Hedging NQ and MNQ 1-10...
12 thanks
Selling Options on Futures?
9 thanks
Trading Plan
9 thanks
(login for full post details)
  #2 (permalink)
Experience: Advanced
Platform: Market Delta
Broker: Velocity /TT
Trading: ES
benbrooke's Avatar
Posts: 430 since Aug 2009
Thanks: 216 given, 490 received

Great Job!

I really like it !

i dont know if its possible but can you add the ABCD pattern and fibs to this indicator?


Visit my futures io Trade Journal Reply With Quote
(login for full post details)
  #3 (permalink)
Legendary Market Wizard
Perdido Beach, AL
Experience: Intermediate
Platform: graph paper
Trading: The shiny stuff
websouth's Avatar
Posts: 1,175 since Jul 2009
Thanks: 1,104 given, 1,318 received

Nice dorschden
Look here if you are an elite member...

a combination of the two might be interesting. I cross linked them.

Visit my futures io Trade Journal Reply With Quote
The following 4 users say Thank You to websouth for this post:
(login for full post details)
  #4 (permalink)
Vancouver, BC
Experience: Intermediate
Platform: Ninjatrader
Posts: 19 since Aug 2009
Thanks: 7 given, 7 received

Very nice! I have been trying to program an improved swing indicator myself, but this one looks great! How have you been using this in your trading strategy?

Reply With Quote
The following user says Thank You to Dusty909 for this post:
(login for full post details)
  #5 (permalink)
Experience: Master
Platform: NinjaTrader
Posts: 110 since Jun 2009
Thanks: 54 given, 1,095 received

I uploaded a new version in the download section with Fibonacci retracements, Fibonacci extensions and an visual entry area for the AB=CD pattern.

With NinjaTrader 7 it's easy to set draw objects in the future and with this feature it's possible to visualize the AB=CD pattern in a better way. But for now the Fibonacci tools must reach.

websouth View Post
Look here if you are an elite member...

a combination of the two might be interesting. I cross linked them.

I'm not an elite member. When I should add some stuff to PriceActionSwing write this in this thread and I'll see what I can do. Otherwise you can use my code (many comments, I think easy to read) and add some snippets in the other swing indicator.

Dusty909 View Post
How have you been using this in your trading strategy?

For my trading style a good swing indicator is essential. Because I often trade price pattern. Next step is to automate the pattern recognition.

I also create a strategy that trades double bottoms/tops with this indicator. As entry trigger you can use almost everthiny: a stochastic cross, MA cross, 3 bar reversal,... the stop is 2 ticks below the double bottom and profit target is the last swing high or let it run with an atr stop, PSAR, TSSuperTrend. Short vice versa. The results are good, but not extraordinary.

Started this thread Reply With Quote
The following 5 users say Thank You to dorschden for this post:
(login for full post details)
  #6 (permalink)
Experience: Intermediate
Platform: NinjaTrader
Trading: NQ
Posts: 32 since Aug 2009
Thanks: 12 given, 58 received


First off, thanks for this wonderful indicator. I've been working with ZigZagUTC to use in my strategies with little luck (due to my poor c# skills). Your indicator would seem to do exactly what I need with the PriceSwingRelation dataseries.

This is probably a very basic C# question, so pardon my lack of coding knowledge. Can you provide an example of calling this indicator by a strategy to determine the values held in the PriceSwingRelation dataseries?

i.e. if (PriceActionSwing(SwingMode, dtbStrength, span).PriceSwingRelation == #
&& ...
&& ... )
{ do something }

What is the required syntax for the "SwingMode" variable when calling the indicator? I've tried many variations such as "SwingMode.Standard", but no luck yet.


Reply With Quote
The following 3 users say Thank You to Pepperdog for this post:
(login for full post details)
  #7 (permalink)
Experience: Master
Platform: NinjaTrader
Posts: 110 since Jun 2009
Thanks: 54 given, 1,095 received


you have to add this lines in your strategy

#region Using declarations
using PriceActionSwing.Utility;

#region Variables
private SwingMode pAS_SwingMode = SwingMode.Standard; 
private int pAS_DtbStrength = 15; 
private int pAS_Span = 8; 

protected override void Initialize()
   // Add the indicator to the chart - not necessary
   Add(PriceActionSwing(pAS_SwingMode, pAS_DtbStrength, pAS_Span));

protected override void OnBarUpdate()
   // If the last high and  low was higher high and higher low and a short sma cross above the long sma enter long
   if (PriceActionSwing(pAS_SwingMode, pAS_DtbStrength, pAS_Span).PriceSwingRelation[0] == 1 && CrossAbove(SMA(3), SMA(7), 1))
      EnterLong(DefaultQuantity, "");

#region Properties
public SwingMode PAS_SwingMode
   get { return pAS_SwingMode; }
   set { pAS_SwingMode = value; }

public int PAS_DtbStrength
   get { return pAS_DtbStrength; }
   set { pAS_DtbStrength = Math.Max(1, value); }

public int PAS_Span
   get { return pAS_Span; }
   set { pAS_Span = Math.Max(1, value); }
For the 1 in "PriceSwingRelation[0] == 1" you can set the following values
-2 for double top
-1 for lower high and lower low
0 nothing
1 for higher high and higher low
2 for double bottom

Hope this helps.

Started this thread Reply With Quote
The following 11 users say Thank You to dorschden for this post:
(login for full post details)
  #8 (permalink)
Sydney, NS
Experience: Intermediate
Platform: Ninja
Broker: Zen-Fire
Trading: TF,S,GC
cclsys's Avatar
Posts: 607 since Nov 2009
Thanks: 248 given, 393 received

Very good. As to enhancement suggestions (!):

wouldn't it be nice to be able to keep a running average of upswings and downswings and either simply print that out in a stats panel or actually project it onto the chart once a new swing has formed. It would also be nice to keep track of the av number of bars and project the same - esp. good with minute charts.

A further embellishment to the above would be to track upswings in bull markets, downswings in bull mkts, downswings in bear, downswings in bull to better hone the anticipated swings. When the market falls short of a projection it indicates weakness, when greatly exceeds indicates strength, but also helps to provide context of what is likely once a new swing has formed.

Only problem is that with this method of calculating swings there might often be considerable 'lag' between when the swing/high/low formed and the code recognises it as such. But I for one would love to be able to see this on a chart and I think you are more than halfway there with the underlying code.

Visit my futures io Trade Journal Reply With Quote
The following 4 users say Thank You to cclsys for this post:
(login for full post details)
  #9 (permalink)
Experience: Master
Platform: NinjaTrader
Posts: 110 since Jun 2009
Thanks: 54 given, 1,095 received

Good suggestions and I'm already working on a statistic add on with almost the same stuff you mention. There is the average up-/down swing length and duration in bars and the same for the last x swings. Furthermore I differ this in up trends with higher high/low and down trends. An with this values I plan to visualize an exit area, so it should be possible to enhance the exits.

It is not so much work, but at this moment I'm very busy and next week I'm on vacation. So I can release the statistic primary in some days.

Started this thread Reply With Quote
The following 3 users say Thank You to dorschden for this post:
(login for full post details)
  #10 (permalink)
Experience: Intermediate
Platform: NinjaTrader
Trading: NQ
Posts: 32 since Aug 2009
Thanks: 12 given, 58 received


Thank you very much for the code snippet. I am working on a strategy/dot/bar painter very similar to what you have in your code. It is basically a combination of the triple EMA dots along with PriceSwingRelation from your indicator to further qualify the MA signals (although I have been moving towards using a Jurik MA versus the triple EMA). Only paint/draw a "long" signal after a HH/HL or DB, and "short" signal after LH/LL or DT when the MA changes slope in the direction of PriceSwingRelation. But I have run into an issue, in that sometimes it will paint, sometimes it does not. Attached is a quick example from today's YM. It most certainly could be a problem with my "dots" code, and I will be working with it tonight to try and sort it out. Any suggestions? (I will run some replays and have my code Print the PriceSwingRelation dataseries as the bars and swings form.)

My basic code logic for longs is (opposite for shorts):

if (MA slope changes from falling to rising)
and (PriceSwingRelation > 0)
{ Paint blue Dot / Go Long }

Also, I see an isTrend() around line 426 of your indicator. Can you shed some light on this?

Attached Thumbnails
Click image for larger version

Name:	YM 12-09  12_1_2009 (800 Volume).png
Views:	4316
Size:	81.6 KB
ID:	5129  
Reply With Quote
The following 5 users say Thank You to Pepperdog for this post:

futures io Trading Community Platforms and Indicators NinjaTrader > PriceActionSwing discussion

Last Updated on May 15, 2022

Upcoming Webinars and Events

NinjaTrader Indicator Challenge!


Copyright © 2022 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada),
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts