futures io

PriceActionSwing discussion

Discussion in NinjaTrader

      Top Posters
    1. looks_one Silvester17 with 177 posts (570 thanks)
    2. looks_two dorschden with 99 posts (1,120 thanks)
    3. looks_3 Big Mike with 52 posts (90 thanks)
    4. looks_4 jmont1 with 51 posts (23 thanks)
      Best Posters
    1. looks_one dorschden with 11.3 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 877,953 views
    2. thumb_up 2,941 thanks given
    3. group 608 followers
    1. forum 2,083 posts
    2. attach_file 615 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: 112 since Jun 2009
Thanks: 59 given, 1,139 received

I welcome any feedback, comments and suggestions for improvement.

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 PriceActionSwingPro.cs script). Discussion about the newest version starts here (last update 31.08.2022).

Download PriceActionSwing

Market analyzer template
You can download a market analyzer template in this post. It contains ABC and divergence signals as well as swing trends and relations.


The PriceActionSwingPro indicator calculates swings in different ways and displays all kind of information about the swings above and below them. PriceActionSwingPro contains also some features:
- Draw automatically Fibonacci extensions and retracements
- naked swing lines
- Calculate a swing statistic
- Calculate and visualize ABC patterns
- Calculate and visualize divergence based on an indicator


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".


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


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.


Here you can set all settings to display divergences 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.

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,

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:	7056
Size:	172.9 KB
ID:	12991   Click image for larger version

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

Name:	ParameterList.png
Views:	10054
Size:	97.9 KB
ID:	12993  
Started this thread Reply With Quote
The following 384 users say Thank You to dorschden for this post:
2bwize, 4X77, 4xmaster, ab456, Abde, adamt, adewes, adrianjm, Aegis, akwash, alberto, alejandr888, Alexander Savin, alexc, AlexSobol, alshir827, Anatta, Angel, anituchka, anniebee321, ap29680, ArbTrader, arbuthnot, arni, asherrizwan, Ashtreegambler, astra, augusta, autotrader8, aventeren, Barrosco, bdd069, Bengaltiger, bergenrain, Bernd, bernoulli, BetMore, beursindex, Big Mike, billgreen3, billy_housel, 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, ElMelor, elyt, emerson, emily28, Enki, Epistemophilic, ericson, Eris, EssDigs, everlover, EvgenyK, evolernet, facudb, famaTV, 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, Gunk, GwaiZaiTrader, Gzalazar, hallem, harry737, hautetoddy, Hayles76, Heph333, hilo2525, hizu, hoolio, icelandicstorm, iceman4248, icog, IequalsS, 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, Kaimu, kajasp, kaltrax, kareem40, KennyK, kingfish88, kmac, konsistencia, kvankuren, LA Trader, LaissezFaire, lavender, LearnToCode, Lee77, Lejcus, leonex, lincor, LoanShark, lonestarAK, Lorien73, loschle, Luigsosa, luisf, madLyfe, maggtrading, Mailmon, mariab, MarianoRA, marker, marketp, MarkG, master trader, MATrader, 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, richardrgayton, 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, vickisb, vicky2005, VictorK, Victory Trader, vjsnews, vsicth12, wahn, warlock, wavestrader, welly192, wglsdzb, wgreenie, whatnext, williamkao, wwlacey, wwwingman, Xaviour, xtrader111, zakmic, Zen Trader, zt379, ztekinos, ZZ07

Can you help answer these questions
from other members on futures io?
What is Your Experience with TradeStations API?
Calculate cumulative sum from session start
TradeStation live and dev environments
Platforms and Indicators
Rival systems and Exegy
Platforms and Indicators
Mt5 Tradestation Integration
Best Threads (Most Thanked)
in the last 7 days on futures io
Spoo-nalysis ES e-mini futures S&P 500
38 thanks
New NinjaTrader
29 thanks
Artificial Intelligence (AI) and Chat GPT
28 thanks
Is anyone actually making money?
18 thanks
In the DOM, which side is the "buy side" and & …
5 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)
Perdido Beach, AL
Experience: Intermediate
Platform: graph paper
Trading: The shiny stuff
websouth's Avatar
Posts: 1,204 since Jul 2009
Thanks: 1,113 given, 1,332 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 5 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: 112 since Jun 2009
Thanks: 59 given, 1,139 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: 112 since Jun 2009
Thanks: 59 given, 1,139 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: 605 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: 112 since Jun 2009
Thanks: 59 given, 1,139 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:	4504
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 17, 2023

Copyright © 2023 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), info@futures.io
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