About QChartist
 Top Next

QChartist is a free charting software for making technical analysis on any data like Forex, Stocks. It is an open source technical analysis software.
It provides a complete set of tools to perform technical analysis on charts and data. It helps to make forecasts mainly for markets but can also be used for weather or any quantifiable data. The program is flexible and its functionalities can be easily extended. You can draw geometrical shapes on your charts or plot programmable indicators from your data. It is also possible to filter or merge data. QChartist has useful features that you can only find in expensive professional softwares and it's free.

It offers an easy to use and intuitive interface. It is delivered with its entire source code, compiler, programming guide, and IDLE. It is easy and rapid to extend its possibilities. The program is written in Basic and C++ language.

The project started in 2010 by Julien Moog. He is a trading amateur since 2005 and passionate of technical analysis. He needed a flexible software, literally a hacking tool for technical analysis purposes and this is where QChartist was born. Website : http://www.qchartist.net

You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.

This HTML-Help file has been made with HelpMaker Help Authoring Tool freeware from vizacc.com
If you want to edit this document, the HelpMaker QChartist.sh5 file can be found in the docs folder.


Getting started
 Previous Top Next
Installation :
- First option : execute QChartist_install.exe which will download the software and unrar it in C:\QChartist automatically
- Second option : download QChartist.rar and unrar it manually in C:\QChartist
Then run update.exe ; recompile with QTStart.bat (compilation can take a few minutes.)
Finally run QChartist.Exe to start the program.

Use QChartist.exe to start the program.
Use update.exe to upgrade the program to the last build (means many new functionalities).
Use QTStart.bat to recompile the program if you modified the source code or ran update.
Use QTGen.exe to open the assistant for new indicator creation. (See How to create a new indicator for more details)
Use JFE IDLE to edit sources files
Use QTGuard.exe to start the expert (automated analysis scanner) (you need an Internet connexion)


Support
 Previous Top Next
Programmers, developers : be envolved in the development of QChartist on groups.io

You can contact the support, Julien Moog by email support@qchartist.net

Guide and whats new readme file here this can help technical documentation:
http://www.qchartist.net/updates/readme.txt

You can get many source code examples for the help of development of QChartist here : http://www.qchartist.net/files/index.php?dir=programming%2FRessources_RapidQ%2F

Become a member of QChartist on Patreon . I furnish this free technical analysis software. Your fee will insure it's future development. And with special advantages. Thank you.

- If QChartist won't start, desactivate your antivirus and try again.
- If QChartist can't be updated, close it and run update.exe


Features
 Previous Top Next
Features

fast C++ computations
astro libraries with indicators and wheel interface
easily programmable with both Basic and C++
many source examples and all tools you need to extend functionnalities are on the website
MT4 (MetaTrader 4) indicators can be easily ported
getting realtime quotes (currencies, stocks) or data (temperature, ...) is possible and free
many (93) efficient custom indicators are included
indicators can use multiple timeframes alltogether
many drawing tools, which are persistent and readjusted even when you scroll the chart
many useful functions that can be reused for new indicators, modules, improvements
you can automate the analysis process (scanners are available with QTGuard)
automatic software updates can be enabled / disabled
Pre Market data for US Stocks
Compatible with Real Time intraday and more quotes from Yahoo Finance (stocks, indexes, commodities, currencies) and Alpha Vantage (currencies and stocks) (Create your free API key on the site) and EOD data from Stooq and Tiingo cryptocurrencies and IEX, Finnhub
Revision after revision, QChartist allows more and more functionalities. It is really a flexible software with extensive functionalities.

- You can draw geometrical shapes:
- trendline
- Fibonacci fan and mirrored
- Fibonacci retracements
- horizontal line
- vertical line
- Parallel lines
- square from corner or center (with mosaic)
- triangle
- equilateral triangle from corner or center (with mosaic)
- rectangle
- circle
- cross
- inverted circle
- text
- Vector Text (with transparency and stretch and rotate)
- Andrews pitchforks
- ellipses (Phi ratio)
- Cycle lines
- Log/Exp curves
- Price/Time extensions
- sinusoids and rotated
- logarithmic / equiangular spiral
- pentagram
- angled cycle
- polygons : pentagone, hexagone, octogone
- conic from five points
- Gann grids
- Speed resistance lines (Fan) and mirrored
- Fibonacci arcs
- Seed Of Life
- Gann square
- Gann Box
- Gann Fan
- Fibonacci spiral
- Archimed spiral
- rotated ellipses
- Circle given 3 points
- Prime numbers
- Fibonacci Time and Price Zones
- Fibonacci Circles
- Schiff Pitchfork
- Time Ruler
- Price Ruler
- square of 9 and 144 floating
- and many more

- You can put indicators on your charts:
- Moving Averages
- Bollinger Bands
- bowels (MTF indicator with Pivots Supports Resistances Daily, Weekly and Monthly)
- Vegas Channel
- BB - HL
- ATR Channel
- Center Of Gravity COG
- Average Daily / Weekly / Monthly Range
- Pivot points supports and resistances
- COG of RSTL
- Din Fibo High
- Elliott Waves with 3_Level_ZZ_Semafor
- TD Sequential (thanks to Tom Demark)
- VWAP with volumes
- BabonH1 tpl with TriangularMA4H TriangularMA1H
- Envelopes
- Ichimoku
- Jupiter - Saturn cycle (planetary lines astro indicator) also called the Chronocrator or master time factor
- Levels
- MA Channels FiboEnv Mid
- Murrey Math (Fractals)
- Overlay Charts
- past regression deviated (Time Series Forecast TSF channel)
- planetary lines
- planetsqn Chapter 15 Square of 9 Nine planet Sun on daily charts
- RSTL
- Fibo MA Channels
- Square numbers lines
- Synodic cycle for all planets
- TMA - CG
- Time Series Forecast TSF
- Volatility Pivot
- Volatility Stop
- WaterLevel
- Weekly Pivot
- Monthly (Yearly) Pivot
- MonthlyPivot2 (the real one)
- Moon Phases on chart
- Hurst FLD's - Future Lines of Demarcation
- Prime Numbers Spiral (Polar) ToolBox
- ZigZag
- ztrendline slope Pi ratio

- You can put indicators on the separate canvas:
- Accelerator
- Money Flow Index MFI
- Average True Range ATR
- Value Chart (detrend price oscillator)
- Relative Strength Index RSI
- astro retrograde
- Candle Average
- CoronaSwingPosition
- Corona Trend Vigor
- declination system
- Ehlers fisher transform
- energy
- FFT (Fast Fourier Transform) spectrometer
- Force index
- Gauquelin sector (astro)
- j_tpo
- Volume
- LSS
- Moon scale
- planetary speed
- planet scale from W D Gann
- RBCI
- realMACD
- spectrometer (J M Hurst Cycles)
- stepftvcprdl
- StepRSI
- Stochastic
- stochasticRSI
- ValueChartATRChannels
- various oscillators
- VWAP Oscillator
- SwamiRSI
- RD_Combo
- Directional Volume Index
- RVI
- ADX
- MACDonRSI
- LaguerreRSI
- Moon Phases
- PlanetCycles (Show the Angle (Aspect) between the two selected planets)
- TSCD (Time Series Convergence Divergence)
- Value Chart of ATR Channels
- Weighted WCCI
- You can make charts additions, subtractions, multiplication, division (Click on Mixer)
- You can use a logarithmic axis type
- You can lock the Price-Time Relationship with a specified ratio
- You can export separate indicators buffers data to csv files
- You can change the chart type to candlesticks, line, point, polar, astro wheel...
- You can use custom timeframes (Period Converter)

- You can create your own experts which will analyse your charts automatically and alert you for a signal

- You can use Scilab (a free Matlab alternative) with QChartist

- Real time Market Watchlist live and customizable

- QChartist is compiled with RapidQ and MinGW together

- And many many more features...

The source code of QChartist is fully included for multiple reasons :
- portions of code written under the GPL license belong to their respective authors
- this will allow many programmers to contribute to the project and to improve it
- in order to include new indicators in the program, the entire source code must be recompiled
Since QC is delivered with its entire source code, compiler, programming guide, and IDLE, it is very easy and rapid to extend its possibilities, even for novice programmers.

Configuration required:
Windows 9x, NT, 2000, XP, Me,Vista, 7, 8, 10, 11 or Linux WineHQ from 1.2 to 7.0

Thank you for using and supporting my software! I hope you like it and find it useful.


License
 Previous Top Next
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, one can be obtained from
Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.

LIMITED WARRANTY:
The publisher provides this free program ; it is the user's responsibility to determine if the program provides acceptable performance for their needs. If the user uses the program then it is agreed by the user that the program is useful for him and no warranty is made by the publisher on future performance of the program.

NO LIABILITY FOR DAMAGES:
The publisher will in no way be liable for any damages caused by installing and
running the program. Installation and usage of the program represents your agreement to this limitation of liability. If your state does not allow this type of liability limit or you do not agree to this liability limit do not install the program on your computer.

INVESTMENT RISK:
Investing money involves great risk of loss. The program is intended for
didactic and/or research purposes only. The end user of the program is solely responsible for any action he or she may take in the financial markets.

IMPORTANT: i just ask that you respect the following things when you use my software:
- to keep my name,email,urls intact everywhere i did mention it in the software files.
- if you use portions of my source files in your project, i ask that you mention my name and my email in your project (somewhere visible to the final user)
- to share your source files with me when you improve the software
- to share your derivated work with me


Credits
 Previous Top Next
Credits to:

- Joseph Fourier for the FFT indicator
- James (Jim) Hurst for the Hurst cycle spectrometer
- Luis Guilherme Damiani for his great indicators Weighted WCCI CyAn 1 FT Fisher Transform
- Thomas Henning Murrey and Vladislav Goshkov for the Murrey Math indicator
- William Yu for the RapidQ compiler
- Earik Beann for his astro indicators
- David C. Stendahl
- William Delbert Gann for his astro indicators
- Todd Geiger for his indicators Past Regression Deviated
- John Kelly for his RapidQ2.inc and Windows.inc and rapidq.chm
- Inprise Corporation for the Borland C++ Compiler 5.5
- Jacques Phillipe for his excellent RapidQ Pre Compiler and rapidq.chm
- Paul Ludgate for his revised version of the RapidQ Compiler
- Michael J. Zito for his great QChart object
- Pasquale Battistelli for his Api Date and QCalendar
- Bruno Schäfer for his rq-math.inc
- Stanescu Serban for his QInputBox and rapidq.chm
- Jens Altmann for his File Editor
- Andrew Shelkovenko for rapidq.chm
- D. Glodt for the rapidq.chm
- MetaQuotes Software Corp. for the accelerator indicator
- MetaQuotes Software Corp. for the ATR indicator
- MetaQuotes Software Corp. for the Bollinger Bands indicator
- Shinigami for his ADR lines indicator
- David W. Thomas for the BB - HL indicator
- Forex-TSD.com and IgorAD for the CandleAverage indicator
- NG3110 and Linuxser for the Center of Gravity indicator
- MetaQuotes Software Corp. and Nikolay Kositsin for the Envelope indicator
- MetaQuotes Software Corp. for the Force Index indicator
- MetaQuotes Software Corp. for the MFI indicator
- MetaQuotes Software Corp. for the RSI indicator
- njel for the smaFibo indicator
- °njel° for the MA Chanels FiboEnv Mid indicator
- TrendLaboratory Ltd. and igorad for the StepRSI indicator
- Mark W. Helweg, David C. Stendahl and smallcaps90 for the valuechart indicator
- S.B.T. for the Volatility Pivot indicator
- MetaQuotes Software Corp. for the Zigzag indicator
- Myles Wilson Walker for his article on W.D. Gann methods for using the planet longitudes
- Mladen for his dynamic balance point indicator
- Brijon, NorthPro, Pipo, Walter, Charvo, Pacific_trip, Habeeb, Skyline & Hornet for the WaterLevel indicator
- Habeeb for the AutoPivotIndicator - Scribd's team for the pdf documentations
- Traders world magazine for their articles
- Yuriy Tokman for the spectrometer indicator
- T.S. Phillips for the astro indicators
- Diego Ratti for the astro indicators and the ztrendine_slope_pi_ratio indicator
- Igor Durkin for StepRSI - CoronaSwingPosition - CoronaTrendVigor - SwamiRSI_v1 indicators
- Goichi Hosoda and MetaQuotes for the Ichimoku indicator
- asystem2000 for Elliot_Wave_3_Level_ZZ_Semafor
- Finware.ru for the RBCI and RSTL indicators
- Mulyadi for the TSCD indicator
- Glen Ring for the Square numbers indicator idea
- mladen for the TMA+CG indicator
- David W. Thomas for the realMACD indicator
- Mostafa Belkhayate for his directives with the COG Center Of Gravity, Elliott Waves indicators
- Dieter Koch and Dr. Alois Treindl for the Swiss Ephemeris
- Patrick Mikula for his ideas with the Square of Nine
- Tom Demark James OBrien for the TD Sequential indicator
- Gehtsoft USA LLC Mario Jemic for the VWAP Oscillator
- nen for the ZUP indicator
- http://www.cplusplus.com
- RapidQ contributors http://rapidq.phatcode.net
- RapidQ Group https://groups.yahoo.com/neo/groups/rapidq/info
- John F. Ehlers for the StochasticRSI indicator
- Habeeb for the AutoPivotIndicator bowels indicator
- Yahoo Finance for their intraday and EOD historical data
- Microsoft for Windows, the Win32 API ...
- Linux for Ubuntu and wine ...
- Mozilla for Firefox ...
- Opera web browser ...
- Shimodax and RickyD for the RD_Combo indicator
- Godaddy for the website hosting services
- Stooq for their huge EOD historical data
- Alpha Vantage for their API and historical data
- Tiingo for their API and intraday and EOD historical data ; and cryptocurrencies
- syanwar, Poul Trade Forum, Aborigen for the MonthlyPivot2 indicator
- boost.org for the boost C++ libraries
- winehq.org - The compatibility layer capable of running Windows applications on several operating systems
- Cybernetwork for the Directional Volume Index indicator
- finnhub.io API for their realtime websocket data used for the watchlist
- And many thanks to all thoses who helped me to build this project


Data source
 Previous Top Next
You can open End Of Day and Intraday charts from the Internet:
(In menu "File" > "Data Source")
- stock charts with Yahoo Finance (e.g. symbol : MSFT)
- forex charts with Yahoo Finance (e.g. symbol : EURUSD=X)
- stock charts with Stooq (e.g. symbol : MSFT.US)
- forex charts with Stooq (e.g. symbol : EURUSD)
- stock charts with Alpha Vantage Stocks (e.g. symbol : MSFT)
- forex charts with Alpha Vantage Forex (e.g. symbol : EURUSD)
- crypto charts with Alpha Vantage Crypto (e.g. symbol : BTC) We don't have to put the cross pair USD.
- crypto charts with Tiingo Crypto (e.g. symbol : BTCUSD)
- stock charts with Tiingo IEX (e.g. symbol : MSFT)
- stocks, forex, indices, commodities and crypto with finnhub.io Stocks (e.g. symbol : MSFT or OANDA:EURUSD or OANDA:SPX500_USD or OANDA:XAU_USD or BINANCE:BTCUSDT)
- stocks, forex, indices, commodities, etf, crypto with Twelvedata (e.g. symbol : MSFT or EUR/USD or SPX or XAU/USD or BTC/USD)

Click on the Symbols list button to show the list of symbols and names for many markets.

Double click on a symbol in the list to open it with the current timeframe and dates that are set in the Data source form.

Click on a symbol in the list to paste it in the Data source form. Then you can change the source, dates and timeframe before getting the chart.

AMEX and NASDAQ markets can work with Yahoo! Finance Internet and Google Finance sources (in data source).
All the other markets work with Stooq or other source.

- With Yahoo! Finance Internet you can use Intraday, Daily, Weekly and Monthly timeframes.
- With Stooq you can use Daily, Weekly and Monthly timeframes.
- With Google Finance you can use 1 Minute, 5 Minutes, 15 Minutes, 30 Minutes and 60 Minutes timeframes.
- With Alpha Vantage you can use Intraday, Daily, Weekly and Monthly timeframes.
- With Tiingo you can use Intraday, Daily, Weekly and Monthly timeframes. (also 4 hours works)
- With finnhub.io you can use Intraday, Daily, Weekly and Monthly timeframes.
- With Twelvedata you can use intraday (including 4 hour) + Daily Weekly and Monthly TF.

But first: before you can download charts, you need to subscribe for a free API key from their official websites.
Enter them in the program:
- In menu "File" > "Data Source"
- Click on "Alpha Vantage API key" button and paste each key in the respective text box

Real time mode:
You can use the Real time mode for Yahoo Finance Daily timeframe and Google Finance timeframes from 1M to 60M.
Not all symbols work with the real time mode. This function is still in beta test.
The real time mode works only between 02:30 PM and 10:00 PM GMT from monday to friday (when the US market is open).
Usage: check realtime and click on Get chart then you need to wait until the clock disappear. The real time script will open a 1M chart and your desired timeframe.
When you are using the real time mode, before opening another chart you need to disable the real time mode : uncheck real time in the data source form and wait until the Get chart button is enabled. Now you can open another chart. If you do not do this, it will bug.
(Outdated, not implemented yet)


Import CSV
 Previous Top Next
Use this function to open a chart from a CSV file (compatible with Meta Trader 4 CSV files)

You just need to have a .csv file correctly formatted in order to do so.

CSV file format must be like this:

date (YYYY.MM.DD),time (HH:MM),open,high,low,close,volume

QChartist uses the same csv format as in the MetaTrader 4 history center

For example, your CSV file must begin with something like:

2010.01.29,00:00,1.05242,1.05467,1.05054,1.05215,17030

You can check this with Notepad.
All fields must be present. If you don't use time in your file (for daily or more), you need to have a time column with 00:00
for all rows in your file.

You can change the order of each column and the separator character can be a coma (,) or anything else. When your click on
import CSV in QChartist, your can enter the position of each column in your CSV and the separator character.
Position 1 is the first column in your file. After that, click on open file and choose your file.
In order to format your files correctly, you can use your usual office suite to do this.
You must not use " " delimiters in your CSV file.


Recent
 Previous Top Next
The Recent Menu shows the 5 most recent opened files/charts.
Simply click on a file to open it.


Export CSV
Used to export the current displayed chart in a csv file.


Export indicator CSV
 Previous Top Next
This sub should export separate indicator canvas buffers
Now open a chart, add an indicator in the separate canvas and click on menu File > Export indicator CSV
Csv files are created in the csv folder
Then diminish the number of displayed bars to 200 and open the exported_indicator1.csv file
Change chart type combo to "Line" for a better visibility of the curve
Now you can put indicators, Bollinger Bands for example...


Period Converter
 Previous Top Next
The current timeframe multiplier (converter) do not provides correct time, thus i coded a new
Period Converter inspired by an MT4 script
It prompts for a multiplier value (an integer or double/float) and then
it writes the csv file with correct price and time.
The script exports converted csv files in the "c:\qchartist\csv\" directory.


Open CSV Folder
 Previous Top Next
This function to opens the QChartist csv folder in explorer.


Open BMP
 Previous Top Next
Opens a BMP file in the main chart canvas.


Save picture
 Previous Top Next
You can save the main chart and the separate indicator canvas in one picture file (as bmp and png)
To do that: click on menu File > Save picture
In the file dialog:
Choose your path and enter a File name (don't forget to put the .bmp at the end of the file)
Click on Save
When prompted "Save as PNG?" click "yes" if you want just a .png file (smaller file size)
or click "No" if you want just a .bmp file
That's all!


Load Template
 Previous Top Next
You can Load templates for your objects, indicators, chart colors and generic parameters.


Save Template
 Previous Top Next
You can Save templates for your objects, indicators, chart colors and generic parameters.


Mixer
 Previous Top Next
With the Mixer, you can make charts additions, subtractions, multiplications and divisions.
This allows you to create exotic currency pairs for example.
EURUSD + USDCHF = EURCHF
USDJPY - USDCAD = CADJPY


Print chart
 Previous Top Next
This function prints the main chart canvas. It needs to be improved to also print the separate canvas. This will be made in a future build.


Quit
 Previous Top Next
Quits the program.


Find Bar
 Previous Top Next
You can find a bar from a date menu Edit>Find bar
Choose a date in the calendar, type the time in the box (hh:mm) and click "Find bar"
If the searched bar is found, the chart will scroll automatically to the correct date and
the bar is highlighted in green.


Chart conversions
 Previous Top Next
You can convert charts to an exponential base 10 ratio or sinusoidal in menu Edit>Chart conversions
This tool is useful for contrarian traders who are looking for tops and bottoms. Tuning your chart to an exponential scale helps to reveal market turning points.


Attribute timeframe
 Previous Top Next
Some indicators use multiple timeframes in order to work properly. See How to use multi timeframe indicators for more details.


Reimport file
 Previous Top Next
This function reloads the current opened CSV file.
If you modify and save a the file with Notepad, click on Reimport file to view modifications on your chart.


Tool settings
 Previous Top Next
Certain drawing tools can have their settings changed.
First you need to click on a drawing tool (in green), for example : polygone
then in Edit > tool settings you can choose between pentagon, hexagone or octogone.


Edit CSV with Notepad

Edit opened CSV file with Notepad
 Previous Top Next
With this function you can edit the opened csv file in the Notepad app.


Data Window

Tools informations
 Previous Top Next
- You can see x,y coordinates (pixels,price,date), angle, length (pixels) of your geometrical figures (View menu>Data Window)

- Price and time for current cursor position is indicated in menu View>Data Window
Highest high, lowest low and other useful informations are displayed in the Data Window

- Bar # on cursor added in the Data Window

- all time high and all time low added in the Data Window

- Total number of bars of the current chart is displayed in menu View > Data Window

- In menu "View" > "Data Window" window added:
- Time on cursor
- OHLCV (bar on cursor info)
- Corrected erronous Bar # on cursor info (you should reduce the nb of displayed bars
for more accuracy between bars and cursor position)

- You can also use the Crosshair tool for more precise Date and Time

Example:


Show separate canvas
 Previous Top Next
For certain indicators (thoses at the bottom of the list) you need to click on View > Show separate canvas to display them.


Objects list
 Previous Top Next
All the objects you draw have their coordinates saved in View > objects list. You can create, modify or delete objects from their table.


Market Watchlist Live
 Previous Top Next
See Market Watchlist
You can now set price alerts and send email when the alert triggers.
Alerts are displayed with the date and time in a message form.
You can't set your smtp password in the mailer settings form for the moment,
you have to change it in QChartist.ini mailerpass=yourpass
You can disable/enable sounds for the Watchlist's alerts.
The Watchlist does not work under Windows 10 with WineHQ. It works with Windows 7. You have to put Windows 7 version with "winecfg" from the terminal.


Full Screen
 Previous Top Next
You can toggle the Full Screen mode in menu View > Full Screen


Settings
 Previous Top Next
Future bars to show
Used with the Shift Chart button

Always check for updates on startup
You must disable this if you use the QTGuard market scanner

Lock price scale ratio at
This value is used if you choose the Axis type: Fixed price axis scale
The value should be a multiple of the amount of displayed bars
For example 0.333 or 0.0333 if you display 333 bars
Then you can draw Scale dependant drawing tools like:
- Square
- Square from center
- Circle
- Triangle
- Triangle from center
- Pentagram
- Fibonacci Arcs
- Seed Of Life
- Fibonacci Circles
- Speed Resistance Arcs
- Logarithmic Spiral
- Fibonacci Spiral
- Archimed Spiral
- Circle given 3 points

Max nb of persistent objects (per drawing tool)
Increase this value if you use for example the TD Sequential indicator with many displayed bars.
This will draw many text labels.

Draw X / Y Axis Grids
Same as Grid button

Zoom step (in bars)
Used for the Zoom + and Zoom - buttons

Time interval in Data Source between start and end date
This will put time intervals automatically in the Data Source Window for a selected timeframe.
For example :
With : - H1 timeframe (in days): 72
in the Data Source Window if you choose
Timeframe: 60M
If end date (current date time at this moment i write this doc.) is 01-11-2023 08:47
Start date will be : 10-31-2022 08:47
The difference between the 2 dates is exactly 72 days (value that has been specified in the Settings Window)

Space forwards, Space backwards, Upper space, Lower space values are used if you want to stretch your chart.

Live Chart Refresh interval (in milliseconds)
This value is used combined with the Live Chart Refresh button
If you Get a Chart with the data source for example with Yahoo Finance Internet
then click on the Live Chart Refresh Button. Your chart will be refreshed (actualised) automatically every 40 seconds by default.
Reclick on the button to disable the automatic refresh of the chart.
Values recommended : between 35000 milliseconds and 90000 milliseconds

Show price line

Say price
Used with the speech engine.
It says the last price of your chart every 40 seconds when you activate the Live Chart Refresh button.


Articles
 Previous Top Next
Educational articles about markets.


Mailer
 Previous Top Next
Configure Mailer Settings and Click on Save.


Indicators
 Previous Top Next
Shows the Indicators Window.


Speech settings
 Previous Top Next
Enable / disable speech engine.


Chat
 Previous Top Next
Support Chart.
Use the chat if you have questions or suggestions.
You can also exchange ideas with other users about trading.


Ephemeris
 Previous Top Next
Swiss Eph. DLL Ephemeris test.


Astro wheel settings
 Previous Top Next
Experimental
Used with the Astro Wheel Chart Type


Gann Square of Nine Spiral
 Previous Top Next
This Square of Nine Spiral is used and required for the PlanetSQN indicator for Daily charts.


Objects
 Previous Top Next
Shows the Objects Lists.


Chart Colors
 Previous Top Next
Customize your chart colors or use a color scheme.


Chart type
 Previous Top Next
Can be:
Candlesticks
Line
Point
Bar
Ribbon
Pretzel
Stepped
Polar
Astro Wheel


Axis type
 Previous Top Next
Can be:
Normal
Logarithmic
Fixed price axis scale


Periodicity
 Previous Top Next
Can be:
1 Minute
5 Minutes
15 Minutes
30 Minutes
1 Hour
4 Hours
Daily
Weekly
Monthly


Template
 Previous Top Next
Save Template
Load Template
Or choose one of the 10 more recent templates that you used.


Grid
 Previous Top Next
Show / Hide chart Grids


Volumes
 Previous Top Next
Show / Hide Chart Volume


Shift Chart
 Previous Top Next
Shift Chart


Zoom +

Zomm +
 Previous Top Next
Zoom in


Zoom -
 Previous Top Next
Zoom out


Live Chart Refresh
 Previous Top Next
Automtically Refresh current chart every x milliseconds (for Internet Data Sources)


Refresh Chart
 Previous Top Next
Refresh Chart one time for Internet data sources


Indicators
 Previous Top Next
Insert Indicators


Objects
 Previous Top Next
Insert Objects


Expand Price Scale


Compress Price Scale


Add Bars


Shift Chart


Zoom in


Zoom out


Timeframes

Timeframe
 Previous Top Next
Can be:
1 Minute
5 Minutes
15 Minutes
30 Minutes
1 Hour
4 Hours
Daily
Weekly
Monthly


Data Window
 Previous Top Next
Show Data Window


Live Chart Refresh
 Previous Top Next
Automatically refresh chart (for Internet Data Sources) every 40 seconds


Refresh Chart
 Previous Top Next
Refresh chart manually (for Internet Data Sources)


Templates
 Previous Top Next
Load template
Save template
Or choose one of the 10 more recent templates that you used.


Arrows
 Previous Top Next
You can draw symbols on your charts (arrows, stickers,
thumbs)


Import CSV
 Previous Top Next
Use this function to open a chart from a CSV file (compatible with Meta Trader 4 CSV files)

You just need to have a .csv file correctly formatted in order to do so.
More info here


Export CSV
 Previous Top Next
Used to export the current displayed chart in a csv file.


Data Source
 Previous Top Next
You can open End Of Day and Intraday charts from the Internet
More info


Max
 Previous Top Next
Display the maximum available amount of bars for your chart.


Displayed bars
 Previous Top Next
Display a chart with x amount of bars


Displayed chart
 Previous Top Next
When you open a chart, it is added in the combobox.
To switch from one chart to another, simply click on the combobox a choose a chart from the opened ones in the list.


Timeframe multiplier
 Previous Top Next
You can change the timeframe multiplier.
For example if you open a 1 hour per bar timeframe chart and change the timeframe multiplier to 4, you have a 4 hour per bar timeframe chart.
Caution, when you change the timeframe multiplier, time axis values and bar date time values will be wrong.
If you want to change the timeframe and keep a correct date time with the price, please use the Period Converter instead.


Chart type
 Previous Top Next
Choose from the combobox, it can be:
Candlesticks
Line
Point
Bar
Ribbon
Pretzel
Stepped
Polar
Astro Wheel


Stop scanner
 Previous Top Next
Use this button to stop QTGuard Market Scanner


Counted bars
 Previous Top Next
For certain indicators that need more than 1000 past bars, it is required that your change the counted bars value to 2000 for example.
1000 is the default value for counted bars and it should not be changed, else most indicators won't work properly.


Use indicators
 Previous Top Next
Check or uncheck this if you want that your indicators to be visible or not.


Axis type
 Previous Top Next
Choose from the combobox, it can be:
Normal
Logarithmic
Fixed price axis scale


Price ratio
 Previous Top Next
Change the price ratio of your chart.


Unlock Data Source Get Chart Button
 Previous Top Next
Use this button if the Get Chart Button in the Data Source Window is disabled.


Drawing Tools
 Previous Top Next
Drawing tools are round buttons.
Click on a drawing tool then click on your chart to begin to draw the tool.
Click again when finished to draw.


Trackbars
 Previous Top Next
Some drawing tools need the use of trackbars to change their width / height.
Theses are:
Logarithmic and Exponential curves
Sinusoids
Rotated ellipses


Reverse / Flip
 Previous Top Next
Some drawing tools can be reversed / flip
These are:
Logarithmic and Exponential curves


Previous / Next Tools
 Previous Top Next
Theses are 2 buttons to show the previous / next drawing tools pages.


Settings
 Previous Top Next
Change the selected drawing tool settings.


Indicators
 Previous Top Next
Show Indicators Window.


Chart Main Canvas

maincanvas
 Previous Top Next
Here the chart is plotted.


Indicator Separate Canvas
 Previous Top Next
Here the separate indicator is plotted.


Chart Opening
A chart shows the price changes for a security with the time. Charts are necessary for performing of technical analysis , working of expert advisors and testing thereof.
Offline Charts
QChartist allows to work with offline charts. These charts are opened on basis of data saved on the hard disk in CSV format. These charts turn out as very useful for working with all kinds of securities or periods.
To open a new chart in offline mode, one has to execute the "File — Import CSV" menu command. Then, in the parameters window, click on "Open file" : a .csv file must be selected in the window that appears, and the "Open" button must be pressed. YHOO1440.csv file is included as an example in the csv directory of QChartist.

Intraday and End Of Day Charts
Click on "File -- Data source" menu in order to open Intraday or EOD charts from Yahoo Finance or Stooq or other sources (you need to be connected to the Internet). More details here.


Line Studies
 Previous Top Next
Line Studies
Line studies are lines and various geometrical shapes that can be imposed into a price or indicator chart. They include support/resistance lines, trend lines, as well as Fibonacci's, Gann's, and Andrews' tools, etc.
Line studies (drawing tools) are collected in the "Tools" toolbar on the left of the program. To impose an object, one has to press the corresponding toolbar button (the buttons are given in the leftmost column of the table).

 | Menu Command | Description
 | Horizontal Line | Horizontal line can be used to mark various levels, particularly, those of support/resistance. One point must be set for this object to be imposed.
 | Vertical Line | Vertical line can be used to mark various borders in the time axis and to compare signals of indicators to price changes. One point must be set for this object to be imposed.
 | Trendline | Trendline helps to explore trends in price changes. Two points must be set through which a trendline will be drawn.
 | Equidistant Channel | Lines of the equidistant channel are always parallel. Two points must be set for this tool to be drawn.
 | Fibonacci Retracement | Leonardo Fibonacci is considered to have discovered a number sequence where each successive number represents a sum of two preceding ones: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, etc. Each number is approximately 1.618 times more than the preceding one, and each number makes approximately 0.618 of the successive one. The tool can be drawn on two points that determine the trendline. At that, horizontal lines that meet the trendline at Fibonacci levels (retracement) as 0.0%, 23.6%, 38.2%, 50%, 61.8%, 100%, 161.8%, 261.8%, and 423.6% are drawn automatically.
 | Fibonacci Fan | Fibonacci Fan is drawn on two points that define the trendline. Then an «invisible» vertical line is drawn through the second point. Then three trendlines are drawn from the first point, these trendlines meeting the invisible vertical line at Fibonacci levels of 38.2%, 50%, and 61.8%. It is considered that significant price changes should be expected near these lines. Standard, Symetry from point or Price mirrored.
 | Andrews' Pitchfork | This tool is drawn on three points and represents the parallel trendlines. The first trendline starts at the selected leftmost point (it is an important peak or trough) and is drawn precisely between two rightmost points. This line is the pitchfork «helve». Then, the second and the third trendlines outgoing from the above-mentioned rightmost points (significant peak and trough) are drawn in parallel to the first trendline. These lines are the pitchfork «teeth». Andrews' Pitchfork is interpreted as support/resistance lines are normally interpreted.
 | Time cycle Lines | This tool represents a row of vertical lines placed at equal intervals. Normally, a unit interval corresponds with one cycle. At that, completed lines are considered to describe future cycles. The tool is drawn on two points that define the unit interval.
 | Price cycle Lines | This tool represents a row of horizontal lines placed at equal intervals. Normally, a unit interval corresponds with one cycle. The tool is drawn on two points that define the unit interval.
 | Crosshair | Show time and price info for both canvas with a click on the mouse wheel
 | Circle |
 | Cross | Settings button is available
 | Ellipse | With Fibo. Ellipses / With Speed Res. Ellipses
 | Exponential curve | You can adjust the two trackbars in Tools toolbar
 | Hand draw |
 | Inverse circle |
 | Logarithmic curve | You can adjust the two trackbars in Tools toolbar
 | Logarithmic spiral | You can adjust the two trackbars in Tools toolbar
 | Oriented cycles |
 | Pentagram |
 | Polygone | Settings button is available for Pentagone, Hexagone or Octogone
 | Price extensions |
 | Time extensions |
 | Sinusoid | You can adjust the two trackbars in Tools toolbar Rotated sinusoid from trendline in settings
 | Square | Standard or with Mosaic
 | Equilateral triangle | Standard or with Mosaic
T | Text | You can write text in your charts
 | Selection | Used to show a bar info or to copy a trendline with a right click
Color | Color |
F | Font |
Clr | Clear |
 | Reverse | Reverse Log / Exp curves
 | Flip | Flip Log / Exp curves
SQ9F | Square of 9 Floating | You can change Settings with button
SQ144F | Square of 144 Floating | You can change Settings with button
 | Square from center | Standard or with Mosaic
 | Triangle from center | Standard or with Mosaic
 | Conic from 5 points | This drawing tool uses Scilab and C++
 | Gann grid |
 | Speed Resistance Lines | Normal or with price mirrored in Settings
 | Fibonacci arcs | You can change Settings with button
 | Seed of life |
 | Gann square | You can change Settings with button
 | Fibonacci spiral | You can adjust the two trackbars in Tools toolbar
 | Archimed spiral | You can adjust the two trackbars in Tools toolbar
 | Fibonacci Circles |
 | Fibonacci Time Zones |
 | Fibonacci Price Zones |
 | Prime numbers spirals toolbox | You can change Settings with button
 | Circle given 3 points |
 | Rotated ellipses | You can adjust the two trackbars in Tools toolbar
VT | Vector Text | Vector Text: The background color is transparent. You can stretch and rotate the text in menu "Windows" > "Objects list"
 | Time Ruler | Time Ruler in minutes or hours or days or bars
 | Price Ruler | Price or indicator's Value Ruler with percent
 | Speed Resistance arcs | You can change Settings with button
 | Schiff Pitchfork | Standard, Modified or Inside Pitchfork with the Settings button
 | Gann Fan | With price mirrored in settings
 | Gann Box | Free / Fixed in pixel / in price / in bars
 | Triangle | Mosaic / Fibonacci Triangles / Speed Res. Triangles
 | Rectangle | Fibo rect. / Speed Res. rect. / Fibo meth. 2 / Speed meth. 2
 | Diamond | With Fibo Diamonds / With Speed Res. Diamonds
 | Rotated Rectangle | Fibo rect. / Speed Res. rect. / Fibo meth. 2
 | Arrows | Arrow code/Thumbs/Arrow/Check/Stop/Sign


Lines Studies overview
 Previous Top Next
Line Studies Overview - Drawing Tools Overview

Fibonacci Diamond

Speed Resistance Diamond

Fibonacci Circles

Fibonacci Ellipses

Fibonacci Rotated Ellipses

Gann Box

Different types of Fans (Fibonacci, Speed Resistance, Gann)

Gann Grid

Gann Square

Inversed Circle

Logarithmic Spiral

Fibonacci Squares and Rectangles

Fibonacci Rectangles Method 2

Speed Resistance Squares and Rectangles

Speed Resistance Rectangles Method 2

Fibonacci Rotated Rectangles

Fibonacci Rectangles Method 2

Speed Resistance Rotated Rectangles

Speed Resistance Rectangles Method 2

Fibonacci Rotated Rectangles

Fibonacci Rotated Rectangles Method 2

Speed Resistance Rotated Rectangles

Speed Resistance Ellipses

Speed Resistance Rotated Ellipses

Fibonacci Triangles

Speed Resistance Triangles

Fibonacci Triangles From Center

Speed Resistance Triangles From Center

Archimed Spiral

Conic From Five Points

Fibonacci Spiral Vortex

Prime Numbers Spiral Polar

Pentagram - Pentacle

Seed Of Life


Average Range (ADR)
 Previous Top Next
ADR112 cpp is a multi timeframe indicator.

It can be used as:
- Average Daily Range (ADR)
- Average Weekly Range
- Average Monthly Range

When click on properties you can choose:
TF basement: Monthly, Weekly or Daily

Example:

See how to use multi timeframe indicators


ATR Channel
 Previous Top Next
This indicator draws an ATR envelope surrounding price action and assists you in setting proper stoploss and take profit levels.


Bollinger Bands
 Previous Top Next
Bollinger Bands
Bollinger Bands Technical Indicator (BB) is similar to Envelopes . The only difference is that the bands of Envelopes are plotted a fixed distance (%) away from the moving average , while the Bollinger Bands are plotted a certain number of standard deviations away from it. Standard deviation is a measure of volatility, therefore Bollinger Bands adjust themselves to the market conditions. When the markets become more volatile, the bands widen and they contract during less volatile periods.
Bollinger Bands are usually plotted on the price chart, but they can be also added to the indicator chart (Custom Indicators). Just like in case of the Envelopes , the interpretation of the Bollinger Bands is based on the fact that the prices tend to remain in between the top and the bottom line of the bands. A distinctive feature of the Bollinger Band indicator is its variable width due to the volatility of prices. In periods of considerable price changes (i.e. of high volatility) the bands widen leaving a lot of room to the prices to move in. During standstill periods, or the periods of low volatility the band contracts keeping the prices within their limits.
The following traits are particular to the Bollinger Band:

1. abrupt changes in prices tend to happen after the band has contracted due to decrease of volatility.

2. if prices break through the upper band, a continuation of the current trend is to be expected.

3. if the pikes and hollows outside the band are followed by pikes and hollows inside the band, a reverse of trend may occur.

4. the price movement that has started from one of the band’s lines usually reaches the opposite one. The last observation is useful for forecasting price guideposts.
Calculation
Bollinger bands are formed by three lines. The middle line (ML) is a usual Moving Average.
ML = SUM [CLOSE, N]/N
The top line, TL, is the same as the middle line a certain number of standard deviations (D) higher than the ML.
TL = ML + (D*StdDev)
The bottom line (BL) is the middle line shifted down by the same number of standard deviations.
BL = ML — (D*StdDev)
Where:
N — is the number of periods used in calculation;
SMA — Simple Moving Average ;
StdDev — means Standard Deviation.
StdDev = SQRT(SUM[(CLOSE — SMA(CLOSE, N))^2, N]/N)
It is recommended to use 20-period Simple Moving Average as the middle line, and plot top and bottom lines two standard deviations away from it. Besides, moving averages of less than 10 periods are of little effect.


BB - HL
 Previous Top Next
Another variation of Bollinger Bands. In this indicator prices High and Low are used instead Close for calculating Standard Deviation.


bowels
 Previous Top Next
These are Pivot, Supports and Resistances for a specified timeframe basement. (see multi timeframe indicators )


Center Of Gravity
 Previous Top Next
Firstly attributions for the initial COG code need to go to

//| Original Code from NG3110@latchess.com

//| Linuxser 2007 for TSD http://www.forex-tsd.com/

For traders who have mastered the art of trading with COG, the Stochastic COG should be no problem to interpret. It appears to lead the On Chart COG as divergence takes place as you would expect.

COG is often misunderstood because it portrays ( like Zig Zag ) a perfect past. Having linear regression logic, the present is often a different story. I personally do not trade with it, but have noticed that it can serve as a very good overall trend channel style indicator.

With the COG, you can know where is the equilibrium point or the market consensus. When the price is far from the COG, the probability to come back to the equilibrium point is strong.


COG of RSTL


Din Fibo High
 Previous Top Next
Author: unknown author, get from kaizer, conversed by Rosh

One of versions of channel DiNapoli.

This indicators needs the use of timeframe attribution .


Elliot_Wave_3_Level_ZZ_Semafor
 Previous Top Next
This indicator calculates Elliott waves.

The principle of Elliott Waves is a concept on the development of the financial markets suggested by Ralph Nelson Elliott (1871/1948). It is directly inspired from the Dow theory. The fundation of this theory is that the evolution of markets is done by a series of successive waves, and this, what ever is the scale of observation of this market (from the minute to the long term). We speak then of a fractal process.

First element:
The complete movement is composed of 5 waves. 3 of these waves are in the direction of the movement, and 2 waves are in the opposite direction.
The first, third and fifth wave are impulsive ; the second and fourth are corrective.

Second element:
The five waves of a dimension become just one wave of a superior dimension. Inversely, one wave of a dimension is composed of 5 sub waves of an inferior dimension.

Third element:
Each impulsive wave (1-3-5) is composed of 5 sub waves, whereas each corrective wave (2-4) is composed of 3 sub waves.

The indicator calculates these waves and suggests that each time that the number "3" appears on the chart, there is the highest probability that there is a trend reversal soon.
This indicator is very efficient and helps a lot to reinforce the probability of a good signal.


Envelopes

Enveloppes
Envelopes
Envelopes Technical Indicator is formed with two Moving Averages one of which is shifted upward and another one is shifted downward. The selection of optimum relative number of band margins shifting is determined with the market volatility: the higher the latter is, the stronger the shift is.
Envelopes define the upper and the lower margins of the price range. Signal to sell appears when the price reaches the upper margin of the band; signal to buy appears when the price reaches the lower margin.
The logic behind envelopes is that overzealous buyers and sellers push the price to the extremes (i.e., the upper and lower bands), at which point the prices often stabilize by moving to more realistic levels. This is similar to the interpretation of Bollinger Bands .
Calculation
Upper Band = SMA(CLOSE, N)*[1+K/1000]
Lower Band = SMA(CLOSE, N)*[1-K/1000]
Where:
SMA — Simple Moving Average ;
N — averaging period;
K/1000 — the value of shifting from the average (measured in basis points).


Fibo MA Channels


Hurst FLD
 Previous Top Next
2022-06-17:
- New indicator: Hurst FLD's - Future Lines of Demarcation
Parameters:
- Barsback (start from how many bars backwards)
- Period (20,40,60 or 80 recommended)
- Source price (close,open,high,low,median,typical,weighted or volume) (median recommended)
- Price source timeframe (current one (autodetect checked) or another TF from another opened chart)
Descrption:
The FLD is calculated by transposing the midpoint of each candle forward in time by half the wave
length of the cycle degree.
In other terms, the FLD of a particular cycle is calculated by transposing the median price roughly
half the wavelength of the cycle in question into the future.
Simple but powerful concept!


Ichimoku Kinko Hyo
 Previous Top Next
Ichimoku Kinko Hyo usually just called ichimoku is a technical analysis method that builds on candlestick charting to improve the accuracy of forecast price moves. It was developed in the late 1930s by Goichi Hosoda (Hosoda Goichi), a Japanese journalist who used to be known as Ichimoku Sanjin, which can be translated as "what a man in the mountain sees". He spent 30 years perfecting the technique before releasing his findings to the general public in the late 1960s.

Ichimoku Kinko Hyo technical indicator is predefined to characterize the market Trend, Support and Resistance Levels, and to generate signals of buying and selling.

This indicator works best at weekly and daily charts. When defining the dimension of parameters, four time intervals of different length are used. The values of individual lines composing this indicator are based on these intervals:

Tenkan-sen shows the average price value during the first time interval defined as the sum of maximum and minimum within this time, divided by two ;
Kijun-sen shows the average price value during the second time interval ;
Senkou Span A shows the middle of the distance between two previous lines shifted forwards by the value of the second time interval ;
Senkou Span B shows the average price value during the third time interval shifted forwards by the value of the second time interval.

Chikou Span shows the closing price of the current candle shifted backwards by the value of the second time interval. The distance between the Senkou lines is hatched with another color and called "cloud". If the price is between these lines, the market should be considered as non-trend, and then the cloud margins form the support and resistance levels.

If the price is above the cloud, its upper line forms the first support level, and the second line forms the second support level ;
If the price is below cloud, the lower line forms the first resistance level, and the upper one forms the second level ;
If the Chikou Span line traverses the price chart in the bottom-up direction it is signal to buy. If the Chikou Span line traverses the price chart in the top-down direction it is signal to sell.

Kijun-sen is used as an indicator of the market movement. If the price is higher than this indicator, the prices will probably continue to increase. When the price traverses this line the further trend changing is possible. Another kind of using the Kijun-sen is giving signals. Signal to buy is generated when the Tenkan-sen line traverses the Kijun-sen in the bottom-up direction. Top- down direction is the signal to sell. Tenkan-sen is used as an indicator of the market trend. If this line increases or decreases, the trend exists. When it goes horizontally, it means that the market has come into the channel.

Always Start With the Cloud

The cloud is composed of two dynamic lines that are meant to serve multiple functions. However, the primary purpose of the cloud is to help you identify the trend of current price in relation to past price action. Given that protecting your capital is the main battle every trader must face, the cloud helps you to place stops and recognize when you should be bullish or bearish. Many traders will focus on candlesticks or price action analysis around the cloud to see if a decisive reversal or continuation pattern is taking shape.

Market's sentiment:

Kumo is dictated by two instruments: Senkou Span A and Span B Senkou position, one above the other can give us valuable information about the general tone of the market, the possible vulnerabilities in a trend or correction or of sudden change in trend. It become bearish when Senkou Span A crosses bellow the Senkou Span B, as you observe that is a high probability changing in trend's direction, although nothing is announcing that the possible decline.
Kumo's may report and delimitation of the range, flat tops or flat bottoms (a highly resistances and support zones), almost horizontal lines drawn by Spain's Senkou or Senkou Span B.

Ichimoku Kinko Hyo
Ichimoku Kinko Hyo Technical Indicator is predefined to characterize the market Trend, Support and Resistance Levels, and to generate signals of buying and selling. This indicator works best at weekly and daily charts.
When defining the dimension of parameters, four time intervals of different length are used. The values of individual lines composing this indicator are based on these intervals:

· Tenkan-sen shows the average price value during the first time interval defined as the sum of maximum and minimum within this time, divided by two;

· Kijun-sen shows the average price value during the second time interval;

· Senkou Span A shows the middle of the distance between two previous lines shifted forwards by the value of the second time interval;

· Senkou Span B shows the average price value during the third time interval shifted forwards by the value of the second time interval.
Chinkou Span shows the closing price of the current candle shifted backwards by the value of the second time interval. The distance between the Senkou lines is hatched with another color and called "cloud". If the price is between these lines, the market should be considered as non-trend, and then the cloud margins form the support and resistance levels.

· If the price is above the cloud, its upper line forms the first support level, and the second line forms the second support level;

· If the price is below cloud, the lower line forms the first resistance level, and the upper one forms the second level;

· If the Chinkou Span line traverses the price chart in the bottom-up direction it is signal to buy. If the Chinkou Span line traverses the price chart in the top- down direction it is signal to sell.
Kijun-sen is used as an indicator of the market movement. If the price is higher than this indicator, the prices will probably continue to increase. When the price traverses this line the further trend changing is possible. Another kind of using the Kijun-sen is giving signals. Signal to buy is generated when the Tenkan-sen line traverses the Kijun-sen in the bottom-up direction. Top-down direction is the signal to sell. Tenkan-sen is used as an indicator of the market trend. If this line increases or decreases, the trend exists. When it goes horizontally, it means that the market has come into the channel.


Jupiter - Saturn cycle
 Previous Top Next
Jupiter - Saturn lines form great support and resistances for the price.


Levels
 Previous Top Next
Description:

The indicator uses the construction method described by Vladislav Antonov (for those who read his session reviews on Viac or Alpari). Here is a small excerpt from his method:

No need to explain the meaning of resistance and support. There are many methods to determine price levels, but I use my calculations. Dynamic levels of support/resistance are defined using MA lines, and statistic lines are calculated using the higher timeframe.

To calculate intraday levels for one hour, use High, Low and Close of the previous hour candlestick.
To calculate intraday levels for one day, use High, Low and Close of the previous one day candlestick.
To calculate intraday levels for one week, use High, Low and Close of the previous one week candlestick.

In this review I calculate support and resistance levels using the daily candlestick of the previous day. Thus, the price levels will be valid for the entire day, and the next day they should be recalculated. Example. For example, take daily candle 02.11.06: High = 1.2786 Low = 1.2736 Close = 1.2780. We get the levels for the current day, and use them on all charts smaller than the daily timeframe. The next day, new levels are calculated.

There are 3 methods of calculation, depending on the size of the previous candlestick:

Reduced - support and resistance levels for the weak market. If the market has closed with a large candlestick of more than 200 points, it is better to use this calculation as a correction is expected and the market will be weak;
Normal - support and resistance levels for the medium volatility of the market. Day candlesticks from 100 to 200 points. Normal works well during the formation of a steady growth or decline, and candlesticks are of a similar size;
Extended - support and resistance levels for a strong market. When the market gets into a triangle and becomes weak, we expect that there will be a strong move, and use the levels with the extended price range.

To decide which method of calculation to use, you should do your own research and gather the statistics of the levels. As to me, I don't keep up with the items described above (this is averagely for the pound). So far, I choose methods guided by my intuition and by the expected price pattern


Moving Average
 Previous Top Next
This is a full featured Moving Average
This one is for "The Bay" and for the community
The Bay wrote on groups.io :
"Allow for a moving average plot to be shifted forward or backward a selected number of bars."
Indicator settings:
- Period (integer)
- Shift (can be a positive or negative integer)
- MA method (Simple, Exponential, Smoothed, Linear Weighted)
- Apply to (Close, Open, High, Low, Median Price (HL/2), Typical Price (HLC/3), Weighted Close (HLCC/4))
- Current timeframe or Autodetect
- Bars back (integer)

Moving Average
The Moving Average Technical Indicator shows the mean instrument price value for a certain period of time. When one calculates the moving average, one averages out the instrument price for this time period. As the price changes, its moving average either increases, or decreases.
There are four different types of moving averages: Simple (also referred to as Arithmetic) , Exponential , Smoothed and Linear Weighted . Moving averages may be calculated for any sequential data set, including opening and closing prices, highest and lowest prices, trading volume or any other indicators. It is often the case when double moving averages are used.
The only thing where moving averages of different types diverge considerably from each other, is when weight coefficients, which are assigned to the latest data, are different. In case we are talking of simple moving average, all prices of the time period in question, are equal in value. Exponential and Linear Weighted Moving Averages attach more value to the latest prices.
The most common way to interpreting the price moving average is to compare its dynamics to the price action. When the instrument price rises above its moving average, a buy signal appears, if the price falls below its moving average, what we have is a sell signal.
This trading system, which is based on the moving average, is not designed to provide entrance into the market right in its lowest point, and its exit right on the peak. It allows to act according to the following trend: to buy soon after the prices reach the bottom, and to sell soon after the prices have reached their peak.
Moving averages may also be applied to indicators. That is where the interpretation of indicator moving averages is similar to the interpretation of price moving averages: if the indicator rises above its moving average, that means that the ascending indicator movement is likely to continue: if the indicator falls below its moving average, this means that it is likely to continue going downward.
Here are the types of moving averages on the chart:

· Simple Moving Average (SMA)

· Exponential Moving Average (EMA)

· Smoothed Moving Average (SMMA)

· Linear Weighted Moving Average (LWMA)
Calculation:
Simple Moving Average (SMA)
Simple, in other words, arithmetical moving average is calculated by summing up the prices of instrument closure over a certain number of single periods (for instance, 12 hours). This value is then divided by the number of such periods.
SMA = SUM(CLOSE, N) / N

Where:
N — is the number of calculation periods.
Exponential Moving Average (EMA)
Exponentially smoothed moving average is calculated by adding the moving average of a certain share of the current closing price to the previous value. With exponentially smoothed moving averages, the latest prices are of more value. P-percent exponential moving average will look like:
EMA = (CLOSE(i) * P) + (EMA(i - 1) * (100 - P))

Where:
CLOSE(i) — the price of the current period closure;
EMA(i-1) — Exponentially Moving Average of the previous period closure;
P — the percentage of using the price value.
Smoothed Moving Average (SMMA)
The first value of this smoothed moving average is calculated as the simple moving average (SMA):
SUM1 = SUM(CLOSE, N)
SMMA1 = SUM1/N
The second and succeeding moving averages are calculated according to this formula:
PREVSUM = SMMA(i - 1) * N
SMMA(i) = (PREVSUM - SMMA(i - 1) + CLOSE(i)) / N
Where:
SUM1 — is the total sum of closing prices for N periods;
PREVSUM — smoothed sum of previous bar;
SMMA1 — is the smoothed moving average of the first bar;
SMMA(i) — is the smoothed moving average of the current bar (except for the first one);
CLOSE(i) — is the current closing price;
N — is the smoothing period.
The formula can be simplified as a result of arithmetic manipulations:

SMMA (i) = (SMMA(i - 1) * (N - 1) + CLOSE (i)) / N
Linear Weighted Moving Average (LWMA)
In the case of weighted moving average, the latest data is of more value than more early data. Weighted moving average is calculated by multiplying each one of the closing prices within the considered series, by a certain weight coefficient.
LWMA = SUM(Close(i)*i, N) / SUM(i, N)

Where:
SUM(i, N) — is the total sum of weight coefficients.


MA Chanels FiboEnv Mid
 Previous Top Next
This indicator needs at least 1000 bars to work properly.


MonthlyPivotcpp
 Previous Top Next
Indicator MonthlyPivotcpp (for Daily timeframe and more)
A chart made of >= 1000 bars is recommended.
This is in fact a yearly pivot indicator. This is the one used in the System Sync trading system.


MonthlyPivot2
 Previous Top Next
MonthlyPivot2 (this is the real Monthly Pivot indicator) works preferably on 240min or 60min TF with > 2000 bars.
Also you need to put QChartist counted bars qedit box to 2000

And please notice that the monthlypivotcpp indicator is in fact a Yearly Pivot indicator.

Bowels indicator is also a different manner to display Monthly Pivot (it needs a Monthly chart with 43200 min TF attributed)


Moon Phases On Chart
 Previous Top Next
Can be the Moon or any other planet.


Murrey_Math
 Previous Top Next
Murrey Math is a trading system for all equities. The main assumption in Murrey Math is that all markets behave in the same manner. The Murrey Math trading system is primarily based upon the observations made by W.D. Gann in the first half of the 20'th century. While Gann was purported to be a brilliant trader in any market his techniques have been regarded as complex and difficult to implement. The great contribution of Murrey Math (T. H. Murrey) was the creation of a system of geometry that can be used to describe market price movements in time. This geometry facilitates the use of Gann's trading techniques.

Murrey decribes it by saying "This is a perfect mathematical fractal trading system".
For readers interested in knowing more about fractals i would recommend the first 100 pages of the book "The Science of Fractal Images" edited by Heinz- Otto Peitgen and Dietmar Saupe.


Overlay_Chart
 Previous Top Next
The Overlay_Chart indicator

This indicator is useful to compare different instruments on a single chart.


past regression deviated
 Previous Top Next
past regression deviated (TSF channel)


Planetary lines
 Previous Top Next
The position of planets moving along the Ecliptic as seen from the Earth is measured in degrees of longitude on a scale from 0 to 360° Through harmonic multiples of such scales planetary prices can be derived and planetary lines can be drawn describing the movement of planets along the ecliptic through time. Choosing the proper multiples it is possible to compare stock prices with planetary prices, although the concept may sound difficult to be grasped and the reason to compare planetary prices with stock prices may seem hard to be understood, it can be shown that very often, choosing the proper harmonic multiples, stock prices seem to resonate when crossing planetary prices. This, in short is the concept behind drawing planetary lines on stock charts. The first man to have this intuition was W.D. Gann, now planetary trading lines are a fundamental tool for any serious astro researcher or astro traders. They can be drawn on daily and intrady charts and with some experience thay can help the expert astro trader in his timing decision.

To get a potential price target W. D. Gann would find a planets longitude somewhere in the 360 degrees of sky that we can see from earth. It was his belief that the planets controlled both time and price. He would locate the planets position in an ephemeris, which is an astrological almanac that lists the planets positions on any day and he would say that one degree of the zodiac is equal to 1 cent or 1 dollar of price.
So any planet sitting at one degree of the zodiac is also at 1 cent or 1 dollar of price. Two degrees would be 2 cents or 2 dollars until you reach 360 degrees. What then happens is that if you have a price higher than 360 cents or dollars you go to the next level of the circle until you get a price match.
One degree is the same as 1 cent, 361 cents, 721 cents (360x2+1) or 1081 cents or dollars (360x3+1). Two degrees is the same as 362 cents, 722 cents (360x2+2) or 1082 cents or dollars (360x3+2).

W. D. Gann also took the average of the planets and converted them to a single degree.
For example we have two planets one of them is at 90 degrees and the other is at 180. So 90+180=270 divided by 2 equals 135 degrees, cents or dollars. Gann would do this with various planet combinations.
One of them using five planets he called MOVE which stands for Mean of Five and COE, which stands for, Circle of eight when using eight planets The MOF is the longitude of Jupiter+Saturn+Uranus+Neptune+Pluto divided by 5. The COE is Mercury+Venus+Mars+Jupiter+Saturn+Uranus+ Neptune+Pluto divided by 8 Gann used also the Average of 6 planets both Heliocentric & Geocentric Mars to Pluto and he used the Heliocentric Average of Jupiter+Saturn+Uranus+Neptune.

In the following example Gann is using actual price and making that a degree of the zodiac. Gann writes, Using a scale of 1 point to 1 degree a price of 8729 = 29 degrees Gemini.

To get that number divide 8729 by 360 (because 360 is one complete circle and you are trying to reduce the price so that it can fit on to a circle) 8729 can be divided by 360 24.2472 times. So we are not worried about the 24 times only what's left over and will fit on to a circle, 360 x 24 = 8640. 8729 - 8640 = 89. So this is 89 degrees of a circle, which is 29 degrees Gemini on the zodiac wheel.
The question of whether the positions and geometries of the planets of our solar system affect market action has been a long and hotly debated issue.
My methodology involves a constant survey of price vs. harmonic positions of the planets in the system. I do this simply by converting planetary positions into price, and noting the points in price where planetary geometries occur. As these geometries approach, the plotted positions of the planets involved approach one another in price (plotted in line format), thus creating an energetic price level. Oftentimes, a market will approach the position of the planetary geometry and respond to that price level with precision, creating a reversal. As I have become more and more familiar with the price patterns associated with market reactions to planetary harmonics, I have learned that the market is in a constant state of action and reaction to these price levels as they form and dissipate. The patterns can be related to those found in fractal geometry, which resembles a random walk until closely inspected. Indeed, the market is constantly expanding and contracting within the confines of the price-energy created by the planets, and this occurs on all time frames simultaneously, from a one-minute to a yearly basis.
In order to understand the concept of planetary harmonics, one must first understand the basic concept of the conversion of planetary position to price. This is a simple concept, and when plotted in price creates a system of "planetary lines".
Planetary Lines is the term we use to describe the method we use to convert planetary energy into price. A planetary line is basically the position of a planet (in longitude) converted into price. The conversion is really quite simple. If a planet, for example, is at a longitude of 187 degrees on the wheel of 360 degrees (using 0 degrees Aries as the starting point), that would be equal to 1.87, 18.7, 187, 1870, 18700, etc., depending on the price of the market you are looking at. For stocks trading in the 10-100 dollar range, I assign a conversion value of 1 degree = .10 dollars, or 10 cents. For stocks trading above $100, I switch to a conversion value of 1 degree = $1.00. For a market trading in the 1000's, the value would switch to 1 degree = 10.00.
Sometimes, a stock may be oscillating back and forth across 100 dollars, or an index oscillating across the 1000, or even 10000 level. When this occurs, I use the latest closing price to define the conversion value. In actuality, there is a condition I refer to as a "beta-shift" that occurs around these levels, where price will temporarily respond to the conversion factors of the two different calculations, and it is usually not until the price moves above the 150-180 area (or 1.50-1.80, 1500-1800, 15000-18000 etc.) that price begins to respond specifically to the new conversion value. This is a more advanced concept, and we will not dwell on it here.
I use the positions of all of the planets, and the Sun, and also the position of the Moon's Node (the point where the Moon crosses the plane of the ecliptic). I use the position on the Moon's Node simply because it is a very powerful point in space, and we do indeed find many major reversal which are associated with aspects of the planets to the position of the Moon's Node, one of which will be used as an example in this article.
A conjunction occurs when two elements are located visually at the same point in the sky (i.e. the same longitude). We are all familiar with a Solar Eclipse, which occurs when the Moon and the Sun are in conjunction, and have the same declination (declination is latitude position, or distance above or below the plane of the ecliptic). In short, a conjunction between two planets, or a planet and the Moon's Node, is the most powerful geometric relationship that can be produced. It can be said that conjunctions are responsible for a majority of major market reversals.
Now, you might ask, if the planet's positions are plotted from 0 to 360 degrees, and 1 degree = 10 cents, then how can a planet's position be plotted above $36.00? We simply add 360 degrees to the position to get to the higher levels. This is just simple math. As an analogy, you might remember the chess board that Captain Kirk and Spock used in Star Trek. It had many transparent levels of play. This is much the same concept, the planets play on many different wheels simultaneously, each representing a higher multiple of 360.
It would be easier if all stocks and other markets traded constantly between 0 and 36 dollars, but they don't, so we had to formulate this simple translation. Like many simple ideas, the proof is in the pudding, and in this case, the simple answer works. In this way, position can be translated to price at any level. Here's another example. If we have an aspect that occurs at 187 degrees on the wheel, that would equal 18.70. You would find higher aspect points in price at 18.70 + 36.00 = 54.70, and the next at 18.70 + 36.00 + 36.00 = 90.70, and the next at 18.70 + 36.00 + 36.00 + 36.00 = 126.70.
The next convention that we need to explain is the concept of "Mirror Lines". We were musing about the fact that markets in uptrend usually follow the trajectory of a particular planetary line. But what about markets in downtrend. How could we define these trends when all planetary lines move upward? The answer, again, was simple. We simply inverted the positions of the planets across the 0 line to create downward moving lines. Here's how it works:

If a planet is at 187 degrees on the wheel, it's Mirror is at 360 – 187 = 173.
A planet at 98 degrees would have a mirror position of 360 – 98 = 262.
In this way, as a planet moves forward one degree of longitude, its mirror moves backward 1 degree, and the plotted line "mirrors" the actual plotted position of the planet.
ASPECTS AND HARMONICS
A geometric relationship between two planets is called an "aspect", and when we refer to Harmonics, we are talking about aspects. The concept of planetary lines will allow you to see not only conjunctions, but any aspect between two or more planetary elements converted to price. We do this by looking at harmonic divisions of a planet's position, and plotting those harmonic divisions in price. We have already explained how to convert a planet's position to price, and this allows you to plot the positions of one or more planets on a price chart, and to visually see the points where those planet's paths intersect. These points of intersection are the points where the planets you are viewing are in conjunction with one another. This is an aspect on the first harmonic. The first harmonic is simply 360 / 1, which is equal to 360. When you view a planet with the setting of 360, you are viewing it's ACTUAL position on the wheel from 0 to 360 degrees. Moving inward through the divisions of the wheel:
The second harmonic is 360 / 2 = 180.
The third harmonic is 360 / 3 = 120.
The fourth harmonic is 360 / 4 = 90.
Most major reversals can be attributed to one of the first four harmonics. Planets make conjunctions to one another only seldomly. However, they also make other important aspects to one another on a more regular basis. The most important of these aspects are:
The opposition: This is where two planets are directly opposite to one another on the wheel. If two planets are in opposition geocentrically, they are located on either side of the earth out in space. This is a second harmonic aspect.
The trine: This is where two planets are located 120 degrees from one another on the wheel, creating a triangle pattern. This is a third harmonic aspect.
The square: This is where two planets are located 90 degrees from one another on the wheel, creating a square pattern. This is a fourth harmonic [image] aspect.
Once you understand the correlation between aspects and harmonics, you can jump to the next step of harmonic price analysis, which is finding the price points that relate to aspects other than conjunctions. I will explain briefly. If we want to find the second harmonic position of a planet in price, we can simply divide the distance between the planetary price lines by 2. In effect, we are adding 180 degrees to the planet's position to get the position of that planet on the opposite side of the wheel.
Price often expands harmonically, and by understanding the nature of the geometry of the system and applying that knowledge to price action, we are able to glean some very useful information from price action. This knowledge creates many opportunities for profitable trades. For my own trading system, I use an advanced system of analysis that includes overlaying many harmonic planetary systems onto each price chart to determine the trend. I also use the analysis of the birth (incorporation) charts of different companies to project whether a particular company has positive or negative influence. I then combine all of these tools with tested technical systems to monitor my trades. This rigorous approach to the market has paid off with steady returns over the years, and my methods continue to be fine-tuned through practice. To this date, I have not found a more precise method of price analysis than planetary price harmonics. Further, I believe that this type of analysis will ultimately be accepted by the entire trading community as a valid measure of price action.


planetsqn
 Previous Top Next
Draws Mikula's Square of Nine Planetary Angles


RSTL
 Previous Top Next
Reference Slow Trend Line (RSTL).


Simple Moving Average
 Previous Top Next
Moving Average
The Moving Average Technical Indicator shows the mean instrument price value for a certain period of time. When one calculates the moving average, one averages out the instrument price for this time period. As the price changes, its moving average either increases, or decreases.
There are four different types of moving averages: Simple (also referred to as Arithmetic) , Exponential , Smoothed and Linear Weighted . Moving averages may be calculated for any sequential data set, including opening and closing prices, highest and lowest prices, trading volume or any other indicators. It is often the case when double moving averages are used.
The only thing where moving averages of different types diverge considerably from each other, is when weight coefficients, which are assigned to the latest data, are different. In case we are talking of simple moving average, all prices of the time period in question, are equal in value. Exponential and Linear Weighted Moving Averages attach more value to the latest prices.
The most common way to interpreting the price moving average is to compare its dynamics to the price action. When the instrument price rises above its moving average, a buy signal appears, if the price falls below its moving average, what we have is a sell signal.
This trading system, which is based on the moving average, is not designed to provide entrance into the market right in its lowest point, and its exit right on the peak. It allows to act according to the following trend: to buy soon after the prices reach the bottom, and to sell soon after the prices have reached their peak.
Moving averages may also be applied to indicators. That is where the interpretation of indicator moving averages is similar to the interpretation of price moving averages: if the indicator rises above its moving average, that means that the ascending indicator movement is likely to continue: if the indicator falls below its moving average, this means that it is likely to continue going downward.
Here are the types of moving averages on the chart:

· Simple Moving Average (SMA)

· Exponential Moving Average (EMA)

· Smoothed Moving Average (SMMA)

· Linear Weighted Moving Average (LWMA)
Calculation:
Simple Moving Average (SMA)
Simple, in other words, arithmetical moving average is calculated by summing up the prices of instrument closure over a certain number of single periods (for instance, 12 hours). This value is then divided by the number of such periods.
SMA = SUM(CLOSE, N) / N

Where:
N — is the number of calculation periods.
Exponential Moving Average (EMA)
Exponentially smoothed moving average is calculated by adding the moving average of a certain share of the current closing price to the previous value. With exponentially smoothed moving averages, the latest prices are of more value. P-percent exponential moving average will look like:
EMA = (CLOSE(i) * P) + (EMA(i - 1) * (100 - P))

Where:
CLOSE(i) — the price of the current period closure;
EMA(i-1) — Exponentially Moving Average of the previous period closure;
P — the percentage of using the price value.
Smoothed Moving Average (SMMA)
The first value of this smoothed moving average is calculated as the simple moving average (SMA):
SUM1 = SUM(CLOSE, N)
SMMA1 = SUM1/N
The second and succeeding moving averages are calculated according to this formula:
PREVSUM = SMMA(i - 1) * N
SMMA(i) = (PREVSUM - SMMA(i - 1) + CLOSE(i)) / N
Where:
SUM1 — is the total sum of closing prices for N periods;
PREVSUM — smoothed sum of previous bar;
SMMA1 — is the smoothed moving average of the first bar;
SMMA(i) — is the smoothed moving average of the current bar (except for the first one);
CLOSE(i) — is the current closing price;
N — is the smoothing period.
The formula can be simplified as a result of arithmetic manipulations:

SMMA (i) = (SMMA(i - 1) * (N - 1) + CLOSE (i)) / N
Linear Weighted Moving Average (LWMA)
In the case of weighted moving average, the latest data is of more value than more early data. Weighted moving average is calculated by multiplying each one of the closing prices within the considered series, by a certain weight coefficient.
LWMA = SUM(Close(i)*i, N) / SUM(i, N)

Where:
SUM(i, N) — is the total sum of weight coefficients.


Square numbers
 Previous Top Next
Prices naturally gravitate to square numbers ; for example if old high was 122 then 11 squared is 121. (Glen Ring)

If the horizontal lines are too close from each others, you can change the price ratio of the chart. For example if you apply a price ratio of 0.1 this will divide the price by 10 and the distance between the lines will be bigger.


Synodic Cycle
 Previous Top Next
The Beauty of the Mercury Synodic Cycle and its forecasting power:

Observing and studying the cycles of Mercury is not only a very interesting subject for astronomers but it has a great importance for traders and investors as well. If you chart the Mercury synodic cycle as degrees of angle separation from the Sun as a function of time and you plot such graph on a standard stock chart you will easily notice how sometimes the curves of the Mercury Synodic cycle graph follow closely the direction of the stock swing movents: since we know in advance the future direction of the Mercury synodic cycle we can use it to make simple yet powerful forecasts.
There is plenty of research still to be made, for example it is not clear what makes this cycle to go completely out of phase form time to time and what all of the sudden makes it work perfectly again. Mercury has always puzzled astrophysicists with issues of celestial mechanics, some of them needed the general relativity theory to eventually solved. The mechanism behind the forecasting power of Mercury is still so obscure.
Gann tracked the cycles of Mercury as well (you can infer this point form the writings he left), George Bayer was an acute observer of these cycles.
Good luck with your research! And remember that studying and learning is always imperative for improving your timing and forecasting skills: nobody has all the answers, do not trust market gurus and analysts, study and learn yourself, you will be always better off than following other people.


TD_Sequential
 Previous Top Next
9 and 13 are important numbers for tops and bottoms

This indicator uses Tom DeMark's TD Sequential counting from 1 to ? 13 and more.
Number 9 and 13 usually identify an exhausted trend and mark a trend reversal.
You can choose to display all numbers or only 9 or only 13.
Besides the numbers the text labels are colored based upon the sequence
(Bullish or Bearish)
Enjoy!

You can connect 9s or 13s with a trendline or a drawing tool like Speed Resistance Line, Grid, or Fibonacci Fan...

In order to display more than 100 objects (numbers) go to menu Tools>Settings and change
max number of persistent objects. Also increase bars back in the indicator settings.
Note that increasing number of persistent objects will slow down chart loading. Default is 100.

Tom demark sequential indicator

Basic understanding of DeMark  tom indicator setup

Tom Demark setup is the most renowned among forex traders. Some of the basic setups of DeMark consist of the following,

    The time durations or periods are described in bars. Time could be classified in hourly, daily, weekly or monthly basis. So, a chain of nine uninterrupted bars which are closed upper or lower than the previously closed four bars shows the following setups,

    If these nine consecutive bars close on higher than the previous (prior records) closed four bars, it will be classified as sell setup. If these nine uninterrupted bars close on lower than the previously closed 4 bars, it will be classified as a buy setup.

    Now coming demark trendline strategy on the sell setup, it is called perfect if the length of bars 6 and 7 in the consecutive count are more than the length of bars 8 or 9.

    A buy setup is called perfected if the low of bars in this uninterrupted count is more than the low of bars 8 or 9 likewise the sell setup.

Trading with the TD Sequential Indicator

Less known to the retail trading community, the TD sequential is one of the most interesting Tom demark indicators. It has both a simple and yet compelling interpretation.

In trading, a saying goes that's simple things work best. As such, whenever technical analysis uses simple concepts, traders have more chances to make a profit.

When applied on a chart, the TD sequential plots a bunch of numbers on a chart. Without knowing what the numbers stand for, they seem useless.

TD Sequential

However, a closer look reveals there is a logic behind them. They are not random.

They appear in either an ascending or descending order. And, they start with number one.

An ascending order signals a bullish trend. And, apparently, a descending one signals a bearish trend.

In earnest, the TD sequential brings an interesting technical analysis approach. The key and the number to remember is four!

How come? Four periods turn a bullish or a bearish trend.

Like with any indicator, the usual caveat applies here too. Namely, the bigger the timeframe, the more powerful the implications.
Explaining the TD Sequential Series

It all relates to the closing prices. When a candle reverses and closes above the closing price of the candle four periods ago, the bearish trend ends.

And, the new candle will have the number 1 on top of it. A potential bullish trend started.

As long as no candle that follows doesn't close below the closing price of the candle four periods ago, the bullish trend continues. When a candle does that, the bullish trend ends.

Sounds complicated? It isn't!

Here's an example. The blue numbers in the TD sequential indicator show a bullish trend, while the red ones a bearish trend.

When any given candle closes beyond the closing price of the previous fourth candle, the sequence changes. Hence, an ascending sequence follows a descending one. And, the opposite forms after a bullish trend.

See the shape of the chart above? It shows a strong, bullish, green candle that closes above the previous eight candles closing price.

That's when a new sequence starts. A bullish one.

The numbers keep rising with the trend: 1,2,3,4,5,6,7,8, and so on. When the number 9 comes, that's where the focus is.

One of the dominant things of using Demark indicators is their reversal strength. In this case, the technical analysis with the TD sequential indicator shows both trending and reversal conditions.

When the indicator plots the number 9, it means the series/sequence has nine consecutive candles that respect the indicator's rule. If this happens, a pullback is in the cards. Traders look to fade the move.

But, even currencies don't trend all the time. As such, not always the price has the power to print nine candles in a row to respect the technical analysis rules set by Demark analysis.

Signals with TD Sequential

A bullish sequence looks exhausted after nine consecutive candles close above the previous fourth candle's close. When this happens, the indicator highlights the number 9 with a bigger font.

The aim is to draw traders attention to it. Reversal conditions exist, so the bulls just received a warning.

In a bearish trend, the numbering appears below the candlesticks. But, the interpretation remains the same.

However, substantial trends see the counting going well beyond the ninth candle. Yet, even strong trends have meaningful pullbacks.

And, this is what this indicator signals. A pullback. Nothing else.

Judging by the sequence, the indicator fits more scalpers and swing traders, rather than investors. Traders looking for quick profits on short-term moves will love it.


Time Series Forecast


TMA_CG
 Previous Top Next
TMA+CG by mladen

This indicator is useful as an exit signal when the price goes back to the middle line.


TriangularMA
 Previous Top Next
TriangularMA1H and TriangularMA4H
You need to load a 4H chart then a 1H chart (from the same symbol)
The goal was to make a clone of !Babon1H for MT4


Vegas


Volatility Pivot


Volatility stop


VWAP


Waterlevel


Weekly Pivot
 Previous Top Next
Weekly Pivot, Supports and Resistances


Zig Zag
 Previous Top Next
The Zigzag indicator is a series of section lines connecting significant tops and bottoms at the price plot.

Minimum price change parameter determines the percentage for the price to move in order to form a new "Zig" or "Zag" line. This indicator eliminates those changes on the plot we analyze that are less than the given value. Therefore, the Zigzag reflects significant changes only.

In most cases, we use Zigzag to facilitate the perception of plots as it shows only the most important changes and turns. You can also reveal Elliot Waves and various figures on the plot with its aid.


ztrendine_slope_pi_ratio
 Previous Top Next
The concept of measuring time and space is very important for the study of time cycles. PI is used to square the circle, it can be used to square both time and space in time cycles analysis. PI can be used to find turning points in the stock market because it can forecast when a cyclical move will balance itself in time and space (where space is price). We will draw trend lines from highs and lows of its time series with slope (number of points per day) equal to PI or to a fraction of PI. Such trend lines will connect lower lows and higher highs in the chart.


Accelerator
Acceleration/Deceleration Technical Indicator (AC) measures acceleration and deceleration of the current driving force. This indicator will change direction before any changes in the driving force, which, it its turn, will change its direction before the price. If you realize that Acceleration/Deceleration is a signal of an earlier warning, it gives you evident advantages.
The nought line is basically the spot where the driving force is at balance with the acceleration. If Acceleration/Deceleration is higher than nought, then it is usually easier for the acceleration to continue the upward movement (and vice versa in cases when it is below nought). Unlike in case with Awesome Oscillator , it is not regarded as a signal when the nought line is crossed. The only thing that needs to be done to control the market and make decisions is to watch for changes in color. To save yourself serious reflections, you must remember: you can not buy with the help of Acceleration/Deceleration, when the current column is colored red, and you can not sell, when the current column is colored green.
If you enter the market in the direction of the driving force (the indicator is higher than nought, when buying, or it is lower than nought, when selling), then you need only two green columns to buy (two red columns to sell). If the driving force is directed against the position to be opened (indicator below nought for buying, or higher than nought for selling), a confirmation is needed, hence, an additional column is required. In this case the indicator is to show three red columns over the nought line for a short position and three green columns below the nought line for a long position.
Calculation
AC bar chart is the difference between the value of 5/34 of the driving force bar chart and 5-period simple moving average, taken from that bar chart.
AO = SMA(median price, 5)-SMA(median price, 34)
AC = AO-SMA(AO, 5)
Where:
SMA — Simple Moving Average ;
AO — Awesome Oscillator .


Astro retrograde
 Previous Top Next
Of the few clues left on W. D. Gann charts about Astrology, he wrote "The retrograde motion of Mercury will affect the trend in Grain prices."


ATR
 Previous Top Next
Average True Range
Average True Range Technical Indicator (ATR) is an indicator that shows volatility of the market. It was introduced by Welles Wilder in his book "New concepts in technical trading systems". This indicator has been used as a component of numerous other indicators and trading systems ever since.
Average True Range can often reach a high value at the bottom of the market after a sheer fall in prices occasioned by panic selling. Low values of the indicator are typical for the periods of sideways movement of long duration which happen at the top of the market and during consolidation. Average True Range can be interpreted according to the same principles as other volatility indicators. The principle of forecasting based on this indicator can be worded the following way: the higher the value of the indicator, the higher the probability of a trend change; the lower the indicator’s value, the weaker the trend’s movement is.
Calculation
True Range is the greatest of the following three values:

· difference between the current maximum and minimum (high and low);

· difference between the previous closing price and the current maximum;

· difference between the previous closing price and the current minimum.
The indicator of Average True Range is a moving average of values of the true range.


Candle average


Close Price


CoronaSwingPosition


CoronaTrendVigor
 Previous Top Next
You need at least a chart of 1000 bars to display this indicator correctly.


CyAn_1_Fty


declination system
 Previous Top Next
Declination system = 6 x mercury declination +
5 x venus declination +
4 x earth declination +
3 x mars declination +
2 x jupiter declination +
1 x saturn declination

These are heliocentric declinations. Each planet is weighted according to its distance from the sun. This indicator should be used with the Dow Jones Industrial DJI. When the declination curve makes a top or bottom, the stock market responds and also makes a top or bottom. Tops don't always go with tops, and bottoms don't always go with bottoms, but the trend changes and the market makes a turning point at that time.


Directional Volume Index
 Previous Top Next
Directional Volume Index thanks to cybernetwork work
Please note that this DVI indicator needs a volume in your data to work!
Yahoo Finance and Alpha Vantage do not provide a volume for FX currencies
In order to have FX with volume, please use finnhub.io Stocks data source and
enter a symbol like: oanda:eur_usd or oanda:aud_jpy
To check if there is a volume in your bars:
Click on the "Selection" Drawing Tool
Click on a bar in your chart
Volume info will appear
Enjoy!


DVI_valuechart


Ehlers fisher transform


energy
 Previous Top Next
Market energy can be used to find high probability turning points in both price and time. Formula: E=total price distance tick per tick x sqrt(volume). There is a resemblance to Einstein's equation E=MC². In our equation, we use volume instead of mass and price instead of the speed of light, the relationship between the two variables is the same. For the first variable, the entire distance traveled by the market during the bar is added.


fftspectro
 Previous Top Next
To show the component curves, you need to display at least 513 bars (because n = 512 in fftspectro.qti file)
Then ajust the max and min values of the separate indicator :


Force Index
 Previous Top Next
Force Index
Force Index Technical Indicator was developed by Alexander Elder. This index measures the Bulls Power at each increase, and the Bulls Power at each decrease. It connects the basic elements of market information: price trend, its drops, and volumes of transactions. This index can be used as it is, but it is better to approximate it with the help of Moving Average . Approximation with the help a short moving average (the author proposes to use 2 intervals) contributes to finding the best opportunity to open and close positions. If the approximations is made with long moving average (period 13), the index shows the trends and their changes.

· It is better to buy when the forces become minus (fall below zero) in the period of indicator increasing tendency;

· The force index signalizes the continuation of the increasing tendency when it increases to the new peak;

· The signal to sell comes when the index becomes positive during the decreasing tendency;

· The force index signalizes the Bears Power and continuation of the decreasing tendency when the index falls to the new trough;

· If price changes do not correlate to the corresponding changes in volume, the force indicator stays on one level, which tells you the trend is going to change soon.
Calculation
The force of every market movement is characterized by its direction, scale and volume. If the closing price of the current bar is higher than the preceding bar, the force is positive. If the current closing price if lower than the preceding one, the force is negative. The greater the difference in prices is, the greater the force is. The greater the transaction volume is, the greater the force is.
FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i- 1))
where:
FORCE INDEX (i) — Force Index of the current bar;
VOLUME (i) — volume of the current bar;
MA (ApPRICE, N, i) — any Moving Average of the current bar for N period:
 Simple , Exponential , Weighted or Smoothed ;
ApPRICE — applied price;
N — period of the smoothing;
MA (ApPRICE, N, i-1) — any Moving Average of the previous bar.


Gauquelin sector


iADX
Average Directional Movement Index
Average Directional Movement Index Technical Indicator (ADX) helps to determine if there is a price trend. It was developed and described in detail by Welles Wilder in his book "New concepts in technical trading systems".
The simplest trading method based on the system of directional movement implies comparison of two direction indicators: the 14-period +DI one and the 14-period -DI. To do this, one either puts the charts of indicators one on top of the other, or +DI is subtracted from -DI. W. Wilder recommends buying when +DI is higher than -DI, and selling when +DI sinks lower than -DI.
To these simple commercial rules Wells Wilder added "a rule of points of extremum". It is used to eliminate false signals and decrease the number of deals. According to the principle of points of extremum, the "point of extremum" is the point when +DI and - DI cross each other. If +DI raises higher than -DI, this point will be the maximum price of the day when they cross. If +DI is lower than -DI, this point will be the minimum price of the day they cross.
The point of extremum is used then as the market entry level. Thus, after the signal to buy (+DI is higher than -DI) one must wait till the price has exceeded the point of extremum, and only then buy. However, if the price fails to exceed the level of the point of extremum, one should retain the short position.
Calculation
ADX = SUM[(+DI-(-DI))/(+DI+(-DI)), N]/N
Where:
N — the number of periods used in the calculation.


iRVI
Relative Vigor Index
The main point of Relative Vigor Index Technical Indicator (RVI) is that on the bull market the closing price is, as a rule, higher, than the opening price. It is the other way round on the bear market. So the idea behind Relative Vigor Index is that the vigor, or energy, of the move is thus established by where the prices end up at the close. To normalize the index to the daily trading range, divide the change of price by the maximum range of prices for the day. To make a more smooth calculation, one uses Simple Moving Average . 10 is the best period. To avoid probable ambiguity one needs to construct a signal line, which is a 4-period symmetrically weighted moving average of Relative Vigor Index values. The concurrence of lines serves as a signal to buy or to sell.
Calculation
RVI = (CLOSE-OPEN)/(HIGH-LOW)
Where:
OPEN — is the opening price;
HIGH — is the maximum price;
LOW — is the minimum price;
CLOSE — is the closing price.


iVolume
 Previous Top Next
Returns Tick Volume value for the bar of specified symbol with timeframe and
shift.


j_tpo


LaguerreRSI


LSS


MACDonRSI


Money Flow Index
 Previous Top Next
Money Flow Index
Money Flow Index (MFI) is the technical indicator, which indicates the rate at which money is invested into a security and then withdrawn from it. Construction and interpretation of the indicator is similar to Relative Strength Index with the only difference that volume is important to MFI.
When analyzing the money flow index one needs to take into consideration the following points:

· divergences between the indicator and price movement. If prices grow while MFI falls (or vice versa), there is a great probability of a price turn;

· Money Flow Index value, which is over 80 or under 20, signals correspondingly of a potential peak or bottom of the market.
Calculation
The calculation of Money Flow Index includes several stages. At first one defines the typical price (TP) of the period in question.
TP = (HIGH + LOW + CLOSE)/3
Then one calculates the amount of the Money Flow (MF):
MF = TP * VOLUME
If today’s typical price is larger than yesterday’s TP, then the money flow is considered positive. If today’s typical price is lower than that of yesterday, the money flow is considered negative.
A positive money flow is a sum of positive money flows for a selected period of time. A negative money flow is the sum of negative money flows for a selected period of time.
Then one calculates the money ratio (MR) by dividing the positive money flow by the negative money flow:
MR = Positive Money Flow (PMF)/Negative Money Flow (NMF)
And finally, one calculates the money flow index using the money ratio:
MFI = 100 - (100 / (1 + MR))


Moon Scale
 Previous Top Next
Moon Scale is based on the same principle as the Planet Scale indicator.


Moon Phases


Planet scale
 Previous Top Next
The other thing that Gann would do is convert the degrees to the speed of the planets to what he called a "scale".

Saturn takes 30 years to make one revolution of the Sun and Jupiter takes 12 years so to get what he called a Saturn scale he would first divide the number by 30. 8729 divided by 30 equals 290.966 which can be rounded up to 291 degrees.

On a zodiac wheel 291 degrees is 21 degrees Capricorn. To get the Jupiter scale divide 8729 by 12, which equals 727.416, which needs to be divided by 360 until it will fit on one circle. 727.416 divided by 360 equals 2.02 times so we take 720 from 727.416 and we are left with 7.416 degrees or 7 degrees and 41 minutes of Aries. I am able to be more accurate that Mr. Gann because I have the luxury of a calculator.

These prices were converted to degrees of the Zodiac like this so that when a planet passes over this degree it is sensitive and a trend change can take place.


Planetary Speed
 Previous Top Next
The planet Mercury when observed from Earth has a very volatile speed of movement along the Ecliptic: sometimes it moves at the same speed of the Sun (apparent speed as observed from Earth), sometimes it moves twice as fast as the Sun and other times it appears retrograde (moving backward) and when its motion switches from retrograde to direct or direct to retrograde it appears stationary for almost one day.
As weird as it may seems nowadays, the changes of speed of the planet Mercury have a dramatic impact on human affairs including stocks and commodities market. What sounds weird today once was a key timing indicators for the ancient astronomers/astrologers.
The first one to observe the importance of observing the speed of Mercury to catch top and bottoms in the market was George Bayer in 1940, he used such planetary tools for timing turn dates in the grain market.
As George Bayer discovered, when the apparent speed of Mercury equals that of the Sun you can expect a turn in a market affected by Mercury.


planetcycles
 Previous Top Next
Just a quick try of the MT5 indicator planetcycles. This calculates the angle (Aspect) between two selected planets.


RBCI


RD_COMBO


realMACD
 Previous Top Next
Moving Average Convergence/Divergence (MACD) is the next trend-following dynamic indicator. It indicates the correlation between two Moving Averages of a price.

The Moving Average Convergence/Divergence (MACD) Technical Indicator is the difference between a 26-period and 12-period exponential moving averages (EMA).

The MACD proves most effective in wide-swinging trading markets.

When the blue MACD line is almost as high as the yellow histogram line (or blue >= yellow line), this is a sell signal.
When the blue MACD line is almost as low as the yellow histogram line (or blue <= yellow line), this is a buy signal.


RSI
 Previous Top Next
Relative Strength Index
The Relative Strength Index Technical Indicator (RSI) is a price-following oscillator that ranges between 0 and 100. When Wilder introduced the Relative Strength Index, he recommended using a 14-day RSI. Since then, the 9-day and 25-day Relative Strength Index indicators have also gained popularity.
A popular method of analyzing the RSI is to look for a divergence in which the security is making a new high, but the RSI is failing to surpass its previous high. This divergence is an indication of an impending reversal. When the Relative Strength Index then turns down and falls below its most recent trough, it is said to have completed a "failure swing". The failure swing is considered a confirmation of the impending reversal.
Ways to use Relative Strength Index for chart analysis:

· Tops and bottoms
The Relative Strength Index usually tops above 70 and bottoms below 30. It usually forms these tops and bottoms before the underlying price chart;

· Chart Formations
The RSI often forms chart patterns such as head and shoulders or triangles that may or may not be visible on the price chart;

· Failure swing ( Support or Resistance penetrations or breakouts)
This is where the Relative Strength Index surpasses a previous high (peak) or falls below a recent low (trough);

· Support and Resistance levels
The Relative Strength Index shows, sometimes more clearly than price themselves, levels of support and resistance.

· Divergences
As discussed above, divergences occur when the price makes a new high (or low) that is not confirmed by a new high (or low) in the Relative Strength Index. Prices usually correct and move in the direction of the RSI.
Calculation
RSI = 100-(100/(1+U/D))
Where:
U — is the average number of positive price changes;
D — is the average number of negative price changes.


smFisherTransform3nr


spectrometer


Stepftvcprdl
 Previous Top Next
StepFTVCPRDL_v2 stands for Step Fisher Transform Value Chart Past Regression Deviated Logarithmic. This indicator is really amazing.

StepFTVCPRDL_v2 can be used for many purposes :
- to know the trend :
when the cyan line is above the magenta line = up trend
when the cyan line is below the magenta line = down trend
- to know when the price will bounce :
you will notice that the orange line often bounce on the cyan and magenta lines
- to know when the market is overbought/oversold
when all the 3 lines are <= 20 = strongly oversold
when all the 3 lines are >= 80 = strongly overbought
- it also gives great signals with Fibo fans or Andrew pitchforks

Try it, you will love it !


StepRSI


Stochastic
 Previous Top Next
Stochastic(5,3,3)
Stochastic Oscillator
The Stochastic Oscillator Technical Indicator compares where a security’s price closed relative to its price range over a given time period. The Stochastic Oscillator is displayed as two lines. The main line is called %K. The second line, called %D, is a Moving Average of %K. The %K line is usually displayed as a solid line and the %D line is usually displayed as a dotted line.
There are several ways to interpret a Stochastic Oscillator. Three popular methods include:

· Buy when the Oscillator (either %K or %D) falls below a specific level (for example, 20) and then rises above that level. Sell when the Oscillator rises above a specific level (for example, 80) and then falls below that level;

· Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line;

· Look for divergences. For instance: where prices are making a series of new highs and the Stochastic Oscillator is failing to surpass its previous highs.
Calculation
The Stochastic Oscillator has four variables:

· %K periods. This is the number of time periods used in the stochastic calculation;

· %K Slowing Periods. This value controls the internal smoothing of %K. A value of 1 is considered a fast stochastic; a value of 3 is considered a slow stochastic;

· %D periods. his is the number of time periods used when calculating a moving average of %K;

· %D method. The method (i.e., Exponential, Simple, Smoothed, or Weighted) that is used to calculate %D.
The formula for %K is: %K = (CLOSE-LOW(%K))/(HIGH(%K)-LOW(%K))*100
Where:
CLOSE — is today’s closing price;
LOW(%K) — is the lowest low in %K periods;
HIGH(%K) — is the highest high in %K periods.
The %D moving average is calculated according to the formula: %D = SMA(%K, N)
Where:
N — is the smoothing period;
SMA — is the Simple Moving Average .


StochasticRSI


SwamiRSI_v1


ThreeD Oscilator


TSCD
 Previous Top Next
TSCD is : Time Series Convergen Divergen , it's an indicator created by 2 TSF slow and fast.
Red histogram line is < 0 : oversold
Red histogram line is > 0 : overbought


Value Chart
 Previous Top Next
Value Charts is a detrended price indicator created by David Stendhal, it shows the overbought and oversold states using the detrended price extremes.

For a nice description, see the "Dynamic Trading Indicators: Winning with Value Charts and Price Action Profile" book Mark Helweg and David Stendahl, this book is very good.

They are usually implemented as candle type charts, but some people plot the closing values as a line.


Value Chart of ATR Channels


VWAP Oscillator


Weighted WCCI


#QChartist timeframe auto detection problem. #Crash when adding indicators.
 Previous Top Next
#Solution is the manual timeframe attribution :
If you go this error when you add indicators to your chart, go to menu Edit > Attribute timeframe and choose 1440 (minutes) for the Daily chart
Then add your indicators and all should be ok.


Bug with some monthly charts
Previous Top Next
Sometimes on monthly timeframe you can't add indicators or attribute 43200 TF.
Sometimes it works for monthly charts when you put the Counted Bars to 100 instead of 1000 (for JPM stock for example)
- Open the monthly chart
- put the Counted Bars to 100 instead of 1000 and refresh chart
- attribute a timeframe of 43200 min
- open the 60 min chart
- put Counted Bars to 1000
- put ADR Monthly indicator
That's all.
Or simply use indicators on monthly chart with Counted Bars to 100 instead of 1000.
If it doesn't work with 100, try less...
Don't forget to put back Counted Bars to 1000 after your experimentation.


Chart colors customization and Schemes
 Previous Top Next
Chart colors are now fully customizable in menu "Tools" > "Chart colors"

You can customize colors of:
- Background chart
- Background
- Foreground
- Grid
- Bull candle (changed to green by default)
- Bear candle
- Line graph
- Pen graph
- Main Title
- Sub Title
- X Axis Title
- Y Axis Title
- Copyright mark
- Labels
- Legend
- Axes
- Background of the separate indicator canvas

- You can also choose a Color scheme:
- QChartist default
- Yellow On Black
- Green On Black
- Black On White

In menu Tools > Settings :
You can draw X and/or Y axis grids on your charts

Examples:


Dates in data source
 Previous Top Next
In QChartist menu File>Data source, you can modify the start date and end date in order to have more or less bars.
These dates are only for Yahoo Finance and Stooq and Tiingo, not for Alpha Vantage.
The format of the date must be MM-DD-YYYY for start and end date


For Linux users
Previous Top Next

You can install wine1.6 or wine1.7 for ubuntu 12.04 available in Wine PPA
To add the ppa, press Ctrl+Alt+T and run below command in terminal:
sudo add-apt-repository ppa:ubuntu-wine/ppa
Remove wine1.4 first:
sudo apt-get remove --purge wine1.4
Then install it after checking for updates:
sudo apt-get update
sudo apt-get install wine1.7

wine1.6 and 1.7 are compatible with QTGuard scanner

Reply
Like
More
julien.moog47@...
09/19/21 #191
Edited 09/20/21

I found that QChartist and QTGuard.Exe (the scanner) with QCKill.Exe also works under ubuntu 14.04 LTS with wine-1.6.2
Then i tried ubuntu 16.04 LTS which has also wine-1.6.2 and QTGuard.Exe can also run QCKill.Exe without problem
Finally i tried ubuntu 18.04.6 LTS with wine-stable (3.0) and QTGuard.Exe failed to run QCKill.Exe (QChartist application cannot be killed by QTGuard)
Maybe i will fix this problem in a future build.

Reply
Like
More
julien.moog47@...
05/24/20 #11
Edited 05/26/20

For Linux users i recommend to install Ubuntu 12.04 with Wine 1.4 otherwise QTGuard.exe (the scanner) won't be able to use QCKill.exe when the app freezes.
You can find the iso here: http://ftp.free.org/mirrors/releases.ubuntu-fr.org/12.04/ubuntu-12.04- desktop-i386-fr.iso
and Wine 1.4 here: http://julienmoog.com/files/index.php?dir=os%2FUbuntu+12.04%2F
For Windows users everything is ok!

You can install wine1.6 or wine1.7 for ubuntu 12.04 available in Wine PPA
To add the ppa, press Ctrl+Alt+T and run below command in terminal:
sudo add-apt-repository ppa:ubuntu-wine/ppa
Remove wine1.4 first:
sudo apt-get remove --purge wine1.4
Then install it after checking for updates:
sudo apt-get update
sudo apt-get install wine1.7

wine1.6 and 1.7 are compatible with QTGuard scanner

Reply
Like
More
julien.moog47@...
09/19/21 #190
Edited 09/20/21

I found that QChartist and QTGuard.Exe (the scanner) with QCKill.Exe also works under ubuntu 14.04 LTS with wine-1.6.2
Then i tried ubuntu 16.04 LTS which has also wine-1.6.2 and QTGuard.Exe can also run QCKill.Exe without problem
Finally i tried ubuntu 18.04.6 LTS with wine-stable (3.0) and QTGuard.Exe failed to run QCKill.Exe (QChartist application cannot be killed by QTGuard)
Maybe i will fix this problem in a future build.

Reply
Like
More
julien.moog47@...
07/12/21 #164
Edited 07/12/21

Note for QChartist software ( http://www.qchartist.net )
:
For Linux users i recommend to install Ubuntu 12.04 with Wine 1.4 otherwise QTGuard.exe (the scanner) won't be able to use QCKill.exe when the app freezes.
You can find the iso here: https://old-releases.ubuntu.com/releases/12.04.5/ubuntu-12.04- desktop-i386.iso
Wine 1.4 packages are also here: https://julienmoog.com/files/index.php?dir=os%2FUbuntu+12.04%2FUbuntu+apt+cache%2F
dpkg -i *.deb

The repositories for older releases that are not supported (like 11.04, 11.10 and 13.04) get moved to an archive server. There are repositories available at http://old- releases.ubuntu.com.

The reason for this is that it is now out of support and no longer receiving updates and security patches.

I would urge you to consider a supported distribution. If your computer is too old in terms of memory or processor then you should consider a distribution such as Lubuntu or Xubuntu.

If you want to continue using an outdated release then edit /etc/apt/sources.list and change archive.ubuntu.com and security.ubuntu.com to old-releases.ubuntu.com.

You can do this with sed:

sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old- releases.ubuntu.com/g' /etc/apt/sources.list

then update with:

sudo apt-get update

sudo apt-get install wine1.4

winecfg

We are ready, download http://www.qchartist.net/downloads/QChartist_install.exe

Execute it with wine

Go to ~/.wine/drive_c/QChartist/ on your computer

Execute update.exe with wine

In terminal "wineconsole cmd" can be useful to recompile with QTStart.bat

Enjoy!


Get real time #market #Yahoo #Finance #charts on your rooted #Android device.
 Previous Top Next

These python scripts plot real live market charts from Yahoo Finance historical data source in the terminal.
This also works on Android devices with Termux. Now you can display your favorite charts everywhere!
Programmed by Julien Moog at the end of november 2021.
Enjoy and happy trading!

Usage instructions:
./yf1.sh [Symbol] [Y scale ratio] [Number of points-bars] [Timeframe]
Valid Timeframe: 1m 5m 15m 30m 1h 1d 1wk 1mo
Example: ./yf1.sh MSFT 2 99 1h
Rooted Android installation:
- install termux from Google Play
- open termux
- "apt update"
- "pkg install wget"
- "wget https://www.julienmoog.com/files/trading/pychartist.zip"
- "su"
- "chmod 777 *"
- "exit"
- "unzip pychartist.zip"
- "su"
- "chmod 777 *"
- "exit"
- "pkg install clang"
- "pkg install boost"
- "clang++ yf.cpp -o yf"
- "su"
- "chmod 777 *"
- "exit"
- "pkg install python"
- "pip install drawille"
- "apt install gnuplot"
- Let's try with Bitcoin: "./demo_BTCUSD.sh"
Enjoy!


How to view detailed informations for a single bar
 Previous Top Next
How to view detailed informations for a single bar in #QChartist
Click on the selection tool (green circle)
Click on a bar in your chart (the selected bar will be surrounded by green)
You will be able know: the bar number,date,time,open,high,low,close,volume
Optionaly you can add a space forwards if you cannot read the info

Another simple solution:
Click on menu "Windows" > "Tools informations"
This window will display helpful informations in relation to the chart cursor position (you can decrease the number of displayed bars for more accuracy).


How to create a new indicator
 Previous Top Next
We will use QTGen.exe to generate a new indicator.
Indicator's files are created in the directory \indicators
Notice : If you choose C++ source code, you will need to add lines in the file includes\getdatabuffer.cpp manually for your indicator's buffers.
If you see how the other indicators are constructed, this will help.
Each indicator have 4 files :
for basic indicators :
- .ini : contains the name, description, canvas location and coding language of the indicator
- .qti : contains the main algorithm of the indicator
- .qtp : contains the indicator's properties
- .qtr : contains the indicator's buffers colors and alternative parameters
for C++ indicators :
- .ini : contains the name, description, canvas location and coding language of the indicator
- .cpp : contains the main algorithm of the indicator coded in C++
- .qtp : contains the indicator's properties
- .qtr : contains the indicator's buffers colors and alternative parameters

If you need a light indicator with few computations, use RQ Basic coding language.
If you need an indicator with a lot of hard computations, use C++ coding language.
C++ indicators load much faster.


How to use multi timeframe indicators
 Previous Top Next
For example : ADR112 is a multi timeframe indicator. This means that we will have to use the "Attribute timeframe" function in the Edit menu.

Usage example of the ADR112 indicator :
We will display this indicator on a daily chart with the use of a weekly chart :

- In the File > Data source open yhoo with weekly timeframe
- Once the weekly chart is displayed on screen, click on Edit > attribute timeframe and select 10080 (10080 minutes = weekly) as chart TF. Close the timeframe attribution window.
- Open the data source window again and open yhoo with a daily timeframe (you don't need to close the previous weekly chart)
- Click on Tools > Indicators, click on ADR112 cpp and on Properties. Choose Weekly for timeframe basement and click OK. In the indicators window, click on "Add indicator" for ADR112 cpp and click OK.

Here is the result :


How to use monthly timeframe charts with indicators
 Previous Top Next
How to use monthly timeframe charts with indicators:

Sometimes Monthly timeframe can't be automatically detected. You have to attributte a timeframe manually:


How to display the FFTspectro indicator correctly
Previous Top Next
How to display the FFTspectro indicator correctly :


How to use QChartist under ubuntu 8.04 hardy heron with wine 1.2
Previous Top Next
I found that QChartist.bas can't be compiled with qtstart.bat under wine 1.0 but it works with wine 1.2
If you have an old computer and install ubuntu 8.04 hardy heron, it has wine 1.0 installed by default.

In order to install wine 1.2 under ubuntu 8.04 :
- modify your sources.list file with
deb http://old-releases.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ hardy main restricted
...
deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ hardy main
deb-src http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ hardy main

- do a sudo apt-get update

- You need to install the updated packages with a sudo update-manager

- Then do a sudo apt-get install wine

Now you have wine 1.2 installed and QChartist will work pretty well.


How to use the planetsqn indicator in QChartist
Previous Top Next
- open a daily chart
- be sure the low and high price is between 1 and 900
else go to Tools>Gann SQ9 spiral and increase interations
You can also play with price ratio (0.1 or 1 or 10)
- select the planetsqn indicator


How to Install Wine 4.0 in Ubuntu 18.10, 16.04, 14.04
 Previous Top Next
How to Install Wine >= 4.0 in Ubuntu 18.10, 16.04, 14.04
February 1, 2019 6 Comments

Wine running Windows apps on Linux
Wine, a free compatibility layer to run Windows applications on Linux, released 4.0 stable recently. Hereâ€™s how to install it in Ubuntu 18.04, Ubuntu 16.04, Ubuntu 14.04, Linux Mint 18.x and 19.
Wine 4.0 is a big release that features:
Vulkan support.
Direct3D 12 support.
Game controllers support.
High-DPI support on Android.
See announcement for more.
The official wine repository offers Ubuntu packages for all current Ubuntu releases, so you can easily install it via following steps:
1. Open terminal from application menu, then run command to enable 32 bit architecture:
sudo dpkg --add-architecture i386
Type user password (no visual feedback) when it prompts and hit Enter.
2. Run command to download and add the repository key:
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
3. For Ubuntu 18.04, Linux Mint 19.x, run command to add the repository:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
For other releases, replace bionic in the code with:
cosmic for Ubuntu 18.10.
xenial for Ubuntu 16.04, and Linux Mint 18.x.
trusty for Ubuntu 14.04.
4. Finally check system package cache and install Wine 4.0:
sudo apt-get update
sudo apt-get install --install-recommends winehq-stable
For Ubuntu 18.04 and higher, you can skip apt-get update as itâ€™s done after adding PPA.

How to Use Wine in Ubuntu:

Once installed, you need to generate configuration file by running command:
winecfg
It prompts you to install some libraries and finally launches the configuration dialog.

To run a .exe file, right-click on file, select â€œOpen with Other Applicationâ€, and choose â€œWine Windows Program Loaderâ€.

Uninstall:

To remove Wine repository, go to Software & Updates -> Other Software, highlight the repository line and remove it.

To remove wine, run command in terminal:
sudo apt-get remove --autoremove wine-stable winehq-stable

--------------------------------------------------------------------------------

Lubuntu is designed for old 32 bits computers and runs fast
Lubuntu 32 bits iso can be burnt on 80 minutes 700 MB bootable CD-R

Use the alternate iso if you have little RAM or if the desktop version can't mount your drive
Use "lspci" and "sudo apt update" and "sudo synaptic" to install your wifi driver

Use the "nm-applet" on your panel to configure your eth or wifi connexion

Use "sudo apt update" and "sudo update-manager" to upgrade to 16.04 LTS


How to lock the Price-Time Relationship
 Previous Top Next
2022-05-23:
- It is now possible to lock the Price-Time Relationship
You can lock the scale ratio, this allows you to set an explicit
relationship between the price axis and the time axis
In order to do that, open a chart, click on axis type combo
and choose "Fixed price axis scale"
Go in the menu Tools > Settings and change the value of
"lock price scale ratio at:"
Choose a number of bars to display and click 2 times on "OK" button or
re-choose "Fixed price axis scale" axis type
This new functionality is useful for certain drawing tools like:
Triangles, Circles, Squares, arc, ellipses, spirals ...
It works great when you put multiples of 10 or proportional numbers between
the number of displayed bars and the "Lock price scale ratio" and
the drawing tool settings
Enjoy!

More explanations and a screen capture example below:

You can lock the scale ratio, this allows you to set an explicit relationship between the price axis and the time axis.
In order to do that, open a chart, click on axis type combo and choose "Fixed price axis scale"
Then go in the menu Tools > Settings and change the value of "lock price scale ratio at:"
Then choose a number of bars to display and click 2 times on "OK" button or re-choose "Fixed price axis scale" axis type
This new functionality is useful for certain drawing tools like:
Triangles, Circles, Squares, arc, ellipses, spirals ...
It works great when you put multiples of 10 or proportional numbers between the number of displayed bars and the "Lock price scale ratio" and the drawing tool settings ..

Example of use and parameters with the Fibo arc drawing tool for a weekly stock chart:
This is quite amazing

Another example on US Index SP500 Daily:
Drawing tool: Square
Shows with and without the Lock Price-Time Relationship feature.
The two charts have 333 bars displayed on screen.

With:
(Lock price scale ratio at: 6.66 (=333 bars/100*2)
Display: 333 bars)
You can see we always use multiples of 10 and/or proportional numbers.

Without the Lock price scale ratio feature:
(Just display: 333 bars)

Here are some good sources of information in order to understand price and time relationships:

https://www.bullcharts.com.au/Downloads/Understanding%20Price%20Time%20Relationships.pdf
https://www.tradingview.com/blog/en/scale-ratio-now-available-tradingview-5998/

Many thanks to the authors of the articles.

Another example with an actual chart of a Real Estate company:

Same stock chart Monthly With Price Time Relationship (Equi Triangle same center):
194 bars displayed ;
I choosed a value of 0.313892 for the Lock price scale ratio
because 0.313892*1000/194 bars=1.618 (the Golden ratio)

Same stock chart Monthly Without Price Time Relationship (Same Equi Triangle same center):
194 bars too


How the TD Sequential indicator works
 Previous Top Next
How TD Sequential indicator works:

- Run QChartist
- We open a chart in "data source", for example "ES=F" (= SP500 futures) symbol, Weekly TF
- We add the "TD_Sequential" indicator
- When we see a "9", we draw an horizontal line which will be an important support/resistance
for the future.

Just look at the example pictures to better understand:

SPX index Weekly - TD Sequential indicator - when we see a "9" = we draw an horizontal line for future support/resistance:

USDJPY FX Daily - TD Sequential indicator - when we see a "9" = we draw an horizontal line for future support/resistance:

Simple and powerful technique!

BTCUSD Bitcoin Crypto Weekly - TD Sequential indicator - when we see a "9" = we draw an horizontal line for future support/resistance:

You can also use the TD Sequential indicator with trendlines and/or grids

- where we see "9"s = we draw a trendline or a grid which will act as a future support/resistance

Examples:


Hurst FLD's - Future Lines of Demarcation
 Previous Top Next
Hurst FLD's - Future Lines of Demarcation: done today, will be available in build 197

Parameters:
- Barsback (start from how many bars backwards)
- Period (20,40,60 or 80 recommended)
- Source price (close,open,high,low,median,typical,weighted or volume) (median recommended)
- Price source timeframe (current one (autodetect checked) or another TF from another opened chart)

Descrption:
The FLD is calculated by transposing the midpoint of each candle forward in time by half the wave
length of the cycle degree.
In other terms, the FLD of a particular cycle is calculated by transposing the median price roughly
half the wavelength of the cycle in question into the future.
Simple but powerful concept!

Preview on SPX Weekly chart with period 80:

Preview on BTC Bitcoin Weekly chart with period 80:


Ma Chanels FiboEnv Mid indicator needs at least 1000 bars to be accurate
Previous Top Next

Ma Chanels FiboEnv Mid indicator needs at least 1000 bars to be accurate :


Market Watchlist
 Previous Top Next
Hi, i am currently working on a customizable market watchlist using finnhub.io python websockets-client and RQ
Prices will be updated every second
I have done the code in python, compiled to executable and made a small Gui with listboxes for the watchlist symbols and prices
There is still work to be done (communication between python script and RQ Gui)
I think it is promising

The Market Watchlist Live is communicating well and has been integrated into QChartist.
It works great and will be available in the build 185
I am still testing it and need to add some useful features like adding or removing tickers from the list, see change %, add colors, sound alert when price > or < specified value, etc

- added buttons to the Watchlist: add symbol, remove symbol, move symbol up, move symbol down

- added text to speech function to the watchlist
it says the last price of a clicked price cell

The Market Watchlist is made and compiled with Python 3.8.8 32 bits under Windows 7

I tried the Watchlist under several operating systems and configurations.
Critical points are GetFileInformationByHandleEx, KERNEL32.dll, python38.dll, sample.exe (the python program to stream finnhub.io with websockets-client)

I tried with :
Windows XP Home Service Pack 2 32 bits : Watchlist crashs (maybe it works with Service Pack 3)
Windows 7 Famillial 32/64 bits : Watchlist works fine!
Ubuntu 8.04.1 i386 with Wine-1.0 : cannot recompile with QTStart.bat (because of spaces) and Watchlist crashs
Ubuntu 8.04.1 i386 with Wine-1.2 : Watchlist crashs
Ubuntu 12.04 i386 with Wine1.4 : Watchlist crashs
Ubuntu 12.04 i386 with Wine1.7 from PPA : Watchlist crashs
Ubuntu 14.04 i386 with Wine-4.0 from PPA : Watchlist works fine!

To sum up, the Watchlist works on :
- Windows 7 and superior
- Linux or Ubuntu 14.04 or superior with Wine-4.0 or superior

Notice : Under WineHQ you have to put version "Windows 7" with "winecfg" from the terminal. Else the Watchlist won't work with "Windows 10" WineHQ version.

See How to Install Wine >= 4.0 in Ubuntu 18.10, 16.04, 14.04

Next steps ; of what it would be possible to do:

- Add finnhub.io to the data source list in order to get historical data and charts
(https://finnhub.io/docs/api/stock-candles)

- Connect the real-time watchlist stream (Trades - Last Price Updates) (https://finnhub.io/docs/api/websocket-trades) with charts opened in QChartist
(Real-time stream will be only available for US stocks, forex and crypto)
This will make it possible for the displayed charts in QChartist to be updated real-time.

All that will maybe be available in a future build. This will take several hours or days of work.
I will keep you informed of that in this topic.

Example:


Manipulating objects with the selection tool

The selection tool
 Previous Top Next
The selection tool (in the drawing tools's toolbar) if you want to move, delete or duplicate a shape.
In this example, we select the trendline tool and we draw a trendline on the current chart. Then we select the selection tool. Right click on an extremity of the trendline and a popup menu will show.


MonthlyPivotcpp indicator
Previous Top Next
To be clear the MonthlyPivotcpp indicator provided in #QChartist or system sync trading system mq4 is in fact a Yearly Pivot indicator
monthlypivotcpp is the one you should use in the System Sync


Please run the update to QChartist last build!
Previous Top Next
Hello, i see that most people download QChartist build 150 but do not make the update to the last build. However big improvements have been made since then. I advice to all people with build 150 to run update.exe the way to benefit from all functionnalities. I you have any difficulties to do the update let me know! I may help you. Thank you for using QChartist and happy trading to all of you!


Period Converter
 Previous Top Next
2022-05-27:
The current timeframe multiplier (converter) do not provides correct time, thus i coded a new
Period Converter inspired by an MT4 script
- Period Converter is available: in menu "File" > "Period Converter"
It prompts for a multiplier value (an integer) and then
it writes the csv file with correct price and time.
The script exports converted csv files in the "c:\qchartist\csv\" directory.
Enjoy and happy trading!


Scanner usage (QTGuard.Exe)
Previous Top Next
Scanner usage (QTGuard.Exe):
Put 0 for checkforupdates in QChartist.ini
Enter your alphavantageapikey in QChartist.ini
Put 0 for lastsymbol in QChartist.ini
Close QChartist and run QTGuard
Click on "Start timer" and click on "Start expert"
Wait a little bit, QChartist will start automatically
don't touch the interface, it scans automatically
Interesting charts are saved as bmp screen captures in the root of the software.
To stop the auto scan, Click on "Stop timer" and click on "Stop expert" in QTGuard


Scale dependent and scale independent drawing tools
 Previous Top Next
Here is a useful list for chartists technical analysts:

Scale independent drawing tools:
- Fibonacci Fan
- Fibonacci Retracements
- Gann Fan
- Ellipse (not rotated)
- Andrew's Pitchfork
- Schiff Pitchfork
- Gann Grid
- Speed Resistance Lines (Fan)
- Logarithmic curve
- Exponential curve
- Sinusoid (not rotated)
- Parallel lines
- Conic from five points
- Gann Square

Scale dependent drawing tools:
- Square
- Square from center
- Circle
- Triangle
- Triangle from center
- Pentagram
- Fibonacci Arcs
- Seed Of Life
- Fibonacci Circles
- Speed Resistance Arcs
- Logarithmic Spiral
- Fibonacci Spiral
- Archimed Spiral
- Circle given 3 points

Not sure with:
- Rotated Sinusoid
- Rotated Ellipse


Scilab test
 Previous Top Next
Draw a conic :

My equation is of the form :

axx + bxy + cyy + dx + ey + f = z where z = 0

I would like to get the (x,y) coordinates of all points on the ellipse where z=0

For example my function with the Scilab code is:

function [z] = fct(x,y)
z = -0.04088*x^2 - 0.10063*y^2 - 0.21767*x + 0.44632*y + 0.04286*x*y
endfunction

I set the working space with:

x=-10:10; y=-10:10;

I draw my ellipse with:

fcontour2d(x, y, fct, [0,0], style=[9,9])

Now i will get all points ((x,y) coordinates) of the plotted ellipse where z=0

Solution:

Here is my source code for Scilab:

// conic function

function [z]=fct(x,y)

z=-0.04088*x^2-0.10063*y^2-0.21767*x+0.44632*y+0.04286*x*y

endfunction

// plane surface z=0

function [z]=f(x,y)

z=0*x*y

endfunction

// working space

x=-10:10;y=-10:10;

// we draw the 2d ellipse from the conic function where z=0

fcontour2d(x,y,fct,[0,0],style=[9,9])

// we write a function to find the intersection between the conic and the place surface

function [Y]=coniques(X) , Y=[fct(X(1),X(2)),f(X(1),X(2))] endfunction

for i=-10:0.1:10 // for each offset off the y axis (with i from -10 to 10 with a step of 0.1)

rep=fsolve([-10,i],coniques); // we find the coordinates (rep(1)=x, rep(2)=y) of the first point of intersection (search from the left to the right)

xpolys(rep(1),rep(2),-1) // we plot the point on the chart

rep=fsolve([10,i],coniques); // we find the coordinates (rep(1)=x, rep(2)=y) of the second point of intersection (search from the right to the left)

xpolys(rep(1),rep(2),-1) // we plot the point on the chart

end


The System Sync trading system
 Previous Top Next
Analysis with the System Sync trading system by Julien Moog.

System Sync
A highly profitable trading system by Julien Moog
This system will give you profitable signals on any markets. You will need the free MetraTrader 4 software and copy all the following indicators and templates into the software. You will also need the free QChartist software. We will buy dips on uptrends and sell peaks on downtrends.
The System Sync trading system is provided with this distribution in the docs folder of QChartist as trading_system.zip
You just need to unzip the file and double click on index.html

Common error - Be careful:

2022-02-25/28 on GBPAUD 4H ,
this i a mistake i made and that should be avoided (fortunately i managed to recover it) :
don't be mistaken with the MonthlyPivot (Yearly) indicator :
if we have not reached yet the ADR Monthly Range (ADR 1.13) red line (GBPAUDH4.png) ,
a Monthly (Yearly) Pivot (purple) line is not enough to enter (GBPAUDDaily.png) ,
we need at least a Monthly (Yearly) S1 (light blue line of GBPAUDDaily.png) to enter ! (with all other conditions met)

On the other hand, if we have reached the ADR Monthly Range (ADR 1.13) red line ,
a price <= Monthly (Yearly) Pivot (purple) line is enough to enter (with all other conditions met) !

Trade well!


TradingView to MT4 csv file converter
 Previous Top Next

Hello, this may be useful
TradingView to MT4 csv file converter
In Tradingview you have to put the volume indicator
You need at least a Pro+ plan in order to export charts in csv format
Then click "Export chart data", Time format: UNIX timestamp then click Export
Now you can use this utility to convert the Tradingview exported csv files
Enjoy and happy trading!
https://www.julienmoog.com/files/trading/Tradingview_to_MT4_csv_converter/Tradingview_to_MT4_csv_converter.zip


The System Sequential
 Previous Top Next
System #2 August 2022: System Sequential
This system is still under test phase but will give you more opportunities. Use it at your own risk.

- TD Sequential is >=13 on Daily timeframe
- Price is near BB - HL Lower / Higher band on Daily timeframe
- Murrey Math on Daily timeframe is at least on the orange line + - 1/8
- Yearly Pivot Points indicator max/min
- Average Monthly Range indicator max/min

- Astro on Daily timeframe:
- Price bounce on Jupiter - Saturn Cycle
or
- Price bounce on PlanetSQN Chap 15
or
- Price bounce on Planet_Scale

- On Monthly timeframe:
- Use price action with Drawing tools (Fibo Fans or Fibo Rets or Ellipse or Pitchforks or Grids or Speed Resistance Lines)
and
- Use price action with Drawing tools that require the "Lock Price Time Scale relationship" (Modify Axis Type to Fixed and set the Lock Price Scale Ratio value according to the number of Displayed Bars. Then you can use Square or Triangle or Circle or Pentagram or Square from Center or Triangle from Center or Fibo Arcs (modify settings) or Seed of Life or Fibo Circles)

Exit (Target Point) (Hourly timeframe):
- price reachs the Volatility.Pivot gray line
or
- stochastic 5,3,3 is near 20 or 80
or
- price reachs the Tma+CG middle dot line


What is the QChartist Market Scanner (QTGuard)
 Previous Top Next
What is the QChartist Market Scanner (QTGuard)?
QChartist Market Scanner (QTGuard) is an algorithm, used for automatic and continuous search for trading signals based on user rules and indicators, on all symbols (and time- frames) available from the data source.
The scanner can monitor (scan) tousands of graphs one after another, on 1 hour, (4 hours for Tiingo) and Daily time periods (timeframes).

The use of automated market monitoring for technical analysis of a trading strategy simplifies the time-consuming task of finding new trading opportunities, saves countless hours of analysis time and accelerates the response to trading signals.
Advantages of Market Scanner usage
The main advantage of using the scanner is the rapid technical analysis and search of trading signals overall the market in the context of any symbols, time-frames and indicators.

A trader using a scanner significantly increases the efficiency of his trading, saving time on a monotonous search for trading opportunities among many tools and timeframes, constantly switching from one chart to another.

In this search mode, the trader misses the best moment to open positions and loses the potential profit from trading. The constant search for signals takes a lot of time and effort. Lost time can be used on effective analysis and trades management.

The scanner is especially effective when using complex trading strategies, in which large mathematical calculations are performed and dozens of additional factors are taken into account.

Full coincidence of conditions in such strategies is rare, but when this happens, it is a reliable signal of a potential profitable trade.

A quick response to the detection of such signals comes to the forefront, which without automation of scanning becomes a difficult task. Using a scanner minimizes the chance of skipping and losing a potentially profitable trade.

Market Scanner interface and functionality
For the scanner, one chart is loaded at a time, on which technical indicators are applied. If technical conditions are met, the trader gets the opportunity to visualize screen captures of potential trading signals in the market.

When the scanner detects a signal, the trader has the opportunity to immediately, open the chart with the asset and time-frame for more detailed consideration, to perform more precize analysis manually and decision-making on trade opening.

The program can notifying of the occurrence of trading signals by screen captures, sound alert or even by email message.

The trader independently determines the list of symbols and time-frames on which trading signals will be searched for according to a pre-programmed strategy (System Sync trading system).
The use of Yahoo Finance + eToro in the QTGuard settings is recommended.
The use of Tiingo in the QTGuard settings is recommended for cryptocurrencies. (put your API key first)

The QTGuard - QChartist scanner allows you to quickly determine which asset(s) is / are overbought or oversold, thanks to powerful indicators.


The System Sync trading system
 Previous Top Next
Analysis with the System Sync trading system by Julien Moog.

This document and all its content is for informational purposes only. Not investment advice.

System Sync
A highly profitable trading system by Julien Moog
This system will give you profitable signals on any markets. You can use MetraTrader 4 software and copy all the following indicators and templates into the software. Or you can also use the free QChartist software. We will buy dips on uptrends and sell peaks on downtrends.
This system is the fruit of many years of market research.
This system is complex, signals may be rare, but are very accurate and reliable.

Brokers is recommend: Oanda MT4 demo account, JFD Brokers MT4 demo account, FXPro MT4 demo account and eToro real account to operate.
List of MT4 indicators needed:
- Vegas Currency Daily 1 Hour2
- ADR lines Shinigami v1.1
- ADR lines Shinigami v1.12
- ADR lines Shinigami v1.13
- ATR_Channels
- BB - HL (Per=200)
- bowels
- Center of Gravity 1
- Center of Gravity
- fibo
- fibo2
- ftvcprdl
- Ichimoku
- j_tpo
- MA Chanels FiboEnv Mid
- Murrey_Math_MT4_VG
- Past Regression Deviated (LR.length=225)
- Past Regression Deviated Log
- realMACD
- Spectrometr_Separate
- Stepftvcprdl_v2
- StepRSI_v2
- Stochastic (5,3,3)
- StochasticRSI (RSILength=5 ; StocLength=5 ; WMALength=5)
- TD Sequential
- TMA (TimeFrame=60 and 240 ; Interpolate=false)
- TMA+CG (Interpolate=false and all alerts false)
- TSCD
- valuechartatrchannels
- Volatility.Pivot
- VWAP Oscillator
- Weighted WCCI
- SwamiRSI_v1
- ZUP_v66
- WeeklyPivot
- MonthlyPivot
- CoronaTrendVigor_v2.1
- CyAn_1_Fty (lenth=3)
- MACDonRSI
- RD-Combo
- Directional Volume Index (50,50,5)

List of MT4 templates needed:
- !BABON1H
- !PRD_WWCCI
- !system_sync
- !Corona
- 0tmacg
- JM cog
- !MA C W Pivot
- jm adr murrey
- !Channels

Download the trading system with indicators and templates here: http://www.qchartist.net/trading_system/trading_system.zip
Mirrors:
http://www.mediafire.com/file/k7m7c70fgot6d5a/trading_system.zip/file
https://drive.google.com/file/d/1o1hIThoKJcKxpXJ1fbto5bsjH0zV3Dbz/view?usp=sharing
https://1drv.ms/u/s!All-V4E8LsNLgjzA-fE717vshad0?e=bQd9yv
https://sourceforge.net/projects/qchartist/
Then copy the .mq4 and .ex4 indicators in MT4 indicators folder
Copy the .tpl templates in MT4 templates folder
Restart your MT4 software.
You will also need to use the Jupiter Saturn Cycle + planetary lines + planet scale + planetsqn indicators available in QChartist software.
Download and install QChartist from http://www.qchartist.net/download.php

Entry (please use H1 timeframe):

- With template !system_sync: price is on the the Average Daily Range (ADR 1.1) blue marine line imperatively
- With template !system_sync: price is on the the Average Monthly Range (ADR 1.13) blue marine line or MonthlyPivot R1-3 or S1-3 (TPL !MA C W Pivot)
- With template !system_sync: price is above the Average Weekly Range (ADR 1.12) yellow line

Interesting:

- With template !PRD_WWCCI: price is near past regression deviated (orange) higher band, fibo (orange) higher band and atr channel (pink) higher band
- With template !PRD_WWCCI: Weighted WCCI blue thick line is on the higher red line
- Ichimoku cloud trend up if we sell, trend down if we buy
- Bollinger Bands on upper or lower band

- With template !PRD_WWCCI: SwamiRSI_v1 is stuck on the upside or downside imperatively
- With template !PRD_WWCCI: CyAn_1_Fty is near 0.8 or -0.8

- With template jm adr murrey: price is >= the orange +1/8 Ove orange line of Murrey Math on H1, H4, Daily, Weekly or Monthly timeframe

- With template !Corona:
- With template !Corona: TSCD red histogram > < 0
- With template !Corona: Stochastic 5,3,3 near 80
- With template !Corona: RealMACD blue line is at least as high as the yellow histogram
- StochasticRSI is at -1 or 1
- j_tpo > < 0

- One of the 2 sinusoids with the highest amplitude is pointing down (QChartist fftspectro indicator) (1 hour to monthly TF)

- The sinusoid with the highest amplitude is pointing down (red) (MT4 spectrometer_separate indicator)
- If sinusoid with the highest amplitude is not pointing down (MT4 spectrometer_separate indicator) but the 2nd sinusoid with the highest amplitude is pointing down, fftspectro sinusoid with the highest amplitude must point down.

- Optional but advised:

- You should use the Center Of Gravity on TF Daily or Weekly or Monthly to see if the direction of the trend is OK. (not required)
Don't trade against the trend.

- With the QChartist software: detrended price is near a line of the Mercury or Venus or Earth indicator (resistance) (planet scale indicator)
If it is not the case, PlanetSqn on Daily TF or Jupiter - Saturn Cycle on Daily TF or Moon Scale on H1 can do the job.

In order to open the .csv MT4 charts from QChartist, you need to export .csv files from MT4 history center.

- You can also use the TMA indicator to detect tops and bottoms with a timeframe of 240 set in the indicator settings (not required)
Example:

- The blue bottom enveloppe is below the marron bottom enveloppe
- The CoronaTrendVigor_v2.1 indicator is flat

- With TPL !MA C W Pivot We are near the Weekly Resistance 3 for the current week or for the previous week
- With TPL !MA C W Pivot We are on the MonthlyPivot R1-3 or S1-3 for the current month or on the Average Monthly Range (ADR 1.13 TPL !system_sync) blue marine line
- Price must be > MonthlyPivot violet line if we sell or price < MonthlyPivot violet line if we buy
- With TPL !MA C W Pivot We are on the last line of MA Chanels FiboEnv Mid imperatively
- With TPL !MA C W Pivot With VWAP Oscillator: the 2 lines are > 0 if we sell or < 0 if we buy

- You can also use BB - HL and Moon Scale to detect tops and bottoms Example:

- With TPL !Channels: we are near the upper or lower band of BB - HL

If the price still goes into the wrong direction:
- Wait for a green bar of RD-Combo to enter one more time (highly recommended)

- Look at the 3 bands on daily or weekly charts ( BB - HL , Vegas , MA Chanels FiboEnv Mid) (Vegas is very useful but we won't use it)

- Look at Jupiter - Saturn Cycle or Planetary Lines Convergence

If the price still goes into the wrong direction:
- Look at the previous bar of StepRSI_v2 on the weekly or monthly chart for >80 or <20 (not required)

If the price still goes into the wrong direction:
- Look at the Planetsqn indicator (Sq9Chapter15) (required if all other astro indicators are not ok) on the daily tf with Market Warrior or QChartist

- You can look at Past Regression Deviated Log (not required) with MA Chanels FiboEnv Mid

- You can look at Past Regression Deviated Log with MA Chanels FiboEnv Mid and BB - HL period 500 (Past Regression Deviated Log not required, BB - HL period 500 not required, but BB - HL period 200 and MA Chanels FiboEnv Mid highest or lowest band required)
(TPL !Channels)

- You can look at Monthly Pivots Points with indicator bowels (required if RD-Combo is not enough)

- You can look at TD Sequential if there is a 9 or a 13 (not required)

- You can look at ValueChartATRChannels with Fibo Fans and Pitchforks (not required)

- You can look at ZUP for a butterfly (not required)

- Finally you can use StepRSI 225 and Stepftvcprdl with Fibonacci fans, Fibonacci retracements, Pitchforks, and Fibonacci arcs on 1 hour to daily charts like that: (not required)

- tradingview.com has the best historical data. It's recommended to use it for long term view of the market. Here it is on Monthly charts: (not required)

- DVI_VALUECHART with Fibo expansions (not required)

- With the Directional Volume Index indicator :
gold line must be > 0 and distant from 0 if we sell or
gold line must be < 0 and distant from 0 if we buy

Exit (Target Point) (please use H1 timeframe instead of H4):
With template 0tmacg:
- price reachs the Volatility.Pivot gray line
or
- stochastic 5,3,3 is near 20
or
- price reachs the Tma+CG middle dot line

Do not hesitate to use the PeriodConverter in MT4 Scripts if your TP becomes negative.


The Price Action System
 Previous Top Next
System #3 November 2022: Price Action System with indicators
This system uses some indicators, and geometry in option. It will give you more opportunities. Use it at your own risk.

Here are the following objects that you can use:
(the more objects you can draw efficiently, the more reliable will be your signals)
Works well on Forex, Indices, Crypto and Commodities.
We use Daily or Weekly charts with maximum number of bars (about 1000 bars).
We use scale independant drawing tools, here is the list:
- Trendlines
- Fibonacci Retracements (between 61.8 and 78.6)
- Parallel lines (use it imperatively)
- Ellipse (between 61.8 and 78.6)
- Andrew's Pitchforks
- Schiff Pitchforks or modified or inside in Settings
- Fibonacci Fans (with price mirror setting) (between 61.8 and 78.6)
- Speed Resistance Lines (with price mirror setting)
- Gann Fans (with price mirror setting)
- Gann Grids
- Oriented Cycles
- Fibonacci Triangle from 3 points (between 61.8 and 78.6)
- Fibonacci Rectangle method 1 or 2 in Settings (between 61.8 and 78.6)
- Fibonacci Diamond (between 61.8 and 78.6)
- Fibonacci Rotated rectangle method 1 or 2 in Settings (between 61.8 and 78.6)
- (Hathaway https://help.optuma.com/kb/faq.php?cid=21 https://help.optuma.com/kb/faq.php?id=423 ) Triple Vector Concentric Circle + Drawing Tool from the Center of the Circle (or Parallels or Trend Line at 32.70° (= 90° - 1 Radian))
With the "Circle Given 3 Points" drawing tool.

- Moreover, we can also use scale dependant drawing tools to complete the analysis

Here are the indicators that you can use:

- Murrey Math Daily or Weekly red lines (use it imperatively)
Use it on 4H TF only if you trade indraday (use it imperatively)

- DVI_Valuechart OR TSF 225 (see Useful tip below) Daily or Weekly with drawing tools (optional if intraday)

- Average Monthly Range (ADR 1.13) near pink or light blue line (optional)

- Center of Gravity and Past Regression Deviated 225 on Monthly chart (optional)

- Useful tip (use it imperatively) : use the Time Series Forecast (TSF 225) indicator on Daily or Weekly charts (increase bars back of the indicator and display 999 bars.) And draw "Gann Fan" or "Fibo Fan" with price mirror setting between Bottom - Top of the TSF curve in order to find turning points efficiently. Or with Fibo Retr., pentagram between bottom and top of TSF. (optional if intraday)

- Another powerful tool to complete the analysis is the use of the chart type Sinusoidal in the Menu Edit > Chart Conversions > Convert chart to Sinusoidal. On the sinusoidal chart (varying from -1 to 1), we use all scale dependant and independent drawing tools to complete the analysis. (optional)

- You can also use the Planet_Scale indicator on Weekly TF to find turning points. (optional)

- MogalefBands4 Daily, Weekly or Monthly (optional)

- Harmonic Patterns, Zup, Search Patterns indicators (useful)

- Anchored VWAP channel top/bottom with all bars on 4H or daily TF (useful because it is self similar on all timeframes)

- Stochastic RSI (5,5,5) near 1/-1 on 4H TF (use it imperatively)

- CoronaTrendVigor Max/Min Flat -10/10 on 1H TF (use it imperatively)

- Spud2 >=90 or <=10 on 4H TF (use it imperatively)

- Price is near higher or lower band of DinFiboHigh cpp indicator on Daily TF (use it imperatively)

- You should also verify that the price is on top/bottom of Bollinger Bands and BB-HL and ATR Channel and Ma Chanels FiboEnv Mid and Din Fibo High and Past Regression Deviated Log on 5 min TF (use it imperatively)

- You should also verify that the price is on top/bottom of ATR Channel and Ma Chanels FiboEnv Mid indicators on 4H TF. (use it imperatively)

Exit when price is near Volatility.Pivot or when valuechart indicator is near 0 on 4H TF. Or when price is near BB middle band on 4H TF.

- If the price goes into the wrong direction, we wait for the price to reach the Murrey Math indicator +- 2/8 Ext Red Line on the 4H (240 minutes) timeframe ; and we enter again at that market price.

More risky : Exit when price reachs the upper/lower or middle band of TMA_CG indicator on 4H (240 minutes) timeframe. Or when price gets closer to the Volatility.Pivot Indicator. Or with stochastic 5,3,3.
If you want to trade on intraday timesframes anyway, use the valuechart indicator (when value is near 4/-4) as exit signal. This indicator is more sensitive to price changes.

This is my favorite trading system and the one i use regulary. Hope you will enjoy too.


Advices
 Previous Top Next
To display indicators correctly, in the properties of QChartist.exe check NT4 compatibility mode.

For certain indicators (those at the bottom of the list) you need to click on Windows > Show separate canvas to display them.

If QChartist.exe does not run, be sure to disable your antivirus or disable your antivirus's service by running services.msc from Windows's cmd

If there is a bug when selecting indicators, this is because you made an update containing new indicators. Solution : recompile the program with QTStart.bat

If the compilation process gives you errors without changing code, maybe you need to remove a previous installation of MinGW which conflicts, and remove its PATH.
QChartist must be compiled with the built-in MinGW installation included in C:\QChartist\MinGW


About this reference
 Previous Top Next
QChartist uses C++ and RapidQ Basic as languages for programming trading indicators and strategies.
Using these languages, you can create your own indicators and automated strategies.
QChartist includes useful functions necessary for technical indicators and for analyzing charts.
This reference contains functions, operations, variables used in indicators and various scripts.

Indicators can be coded independently in addition to those already integrated into the program. They can be used for manual analysis purposes and can also be implemented in automated analysis scripts.
Indicators are stored in QChartist\Indicators


displayedfile
 Previous Top Next
displayedfile as integer

contains the number of the chart which is currently displayed on the screen


chartbars()
 Previous Top Next
chartbars(chart_number as integer) as integer

contains the total number of bars of the specified chart number


charttf()
 Previous Top Next
charttf(chart_number as integer) as integer

contains the timeframe (in minutes) of the specified chart number


importedfile()
 Previous Top Next
importedfile(chart_number) as string

contains the file path of the specified chart number


openedfilesnb
 Previous Top Next
openedfilesnb as integer

contains the total number of charts opened


rowgridoffset
 Previous Top Next
rowgridoffset as integer

used with grid which contains historical data.
It is the offset of the chart in the grid (see grid for more details)


grid
 Previous Top Next
grid as qstringgrind
grid.cell(rowgridoffset+(1 ...7),bar_number) as string

contains the date, time and historical data of all opened charts.
QChartist uses the grid to draw each bar of each chart on the screen

1 ... 7 (which data of the bar) : 1 for date, 2 for time, 3 for open, 4 for high, 5 for low, 6 for close, 7 for volume

rowgridoffset : 0 for the first chart, 0+7=7 for the second chart, 7+7=14 for the third chart, etc. (increment by 7 from 0)

bar_number : 1 is the first bar (with the oldest date time) from the left to the right


date()
 Previous Top Next
date(bar_number as integer) as string

contains the date (YYYY-MM-DD) of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


time()
 Previous Top Next
time(bar_number as integer) as string

contains the time (HH:MM) of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


open()
 Previous Top Next
open(bar_number as integer) as double

contains the opening price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


high()
 Previous Top Next
high(bar_number as integer) as double

contains the highest price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


low()
 Previous Top Next
low(bar_number as integer) as double

contains the lowest price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


close()
 Previous Top Next
close(bar_number as integer) as double

contains the closing price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


volume()
 Previous Top Next
volume(bar_number as integer) as integer

contains the volume of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.


date1()
 Previous Top Next
date1(bar_number as integer) as string

contains the date (YYYY-MM-DD) of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are dates for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (date5(), date15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


time1()
 Previous Top Next
time1(bar_number as integer) as string

contains the time (HH:MM) of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are time for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (time5(), time15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


open1()
 Previous Top Next
open1(bar_number as integer) as double

contains the opening price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are open prices for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (open5(), open15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


high1()
 Previous Top Next
high1(bar_number as integer) as double

contains the highest price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are high prices for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (high5(), high15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


low1()
 Previous Top Next
low1(bar_number as integer) as double

contains the lowest price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are low prices for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (low5(), low15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


close1()
 Previous Top Next
close1(bar_number as integer) as double

contains the closing price of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are close prices for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (close5(), close15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


volume1()
 Previous Top Next
volume1(bar_number as integer) as integer

contains the volume of the specified bar number for the chart that is currently displayed.
Bar number : 0 is the first bar (with the most recent date time), from the right to the left.

These are volume prices for the 1 minute chart period (timeframe).
This array is filled when you attribute a specified timeframe to the current chart . There are also arrays (volume5(), volume15(), ...) for all the other timeframes. Useful for multi timeframe indicators, chart overlays...


numbars_first
 Previous Top Next
numbars_first as integer

contains the bar number of the first displayed bar.

For example open(numbars_first) contains the price at the opening of the first displayed bar.


numbars_last
 Previous Top Next
numbars_last as integer

contains the bar number of the last displayed bar.

For example close(numbars_last) contains the price at the closing of the last displayed bar.


numbars
 Previous Top Next
numbars as integer

contains the number of bars that is currently displayed on the screen


bars
 Previous Top Next
bars as integer

contains the total number of bars that are loaded from the chart that is currently displayed on the screen. Same as chartbars(displayedfile)


graphvhigh
 Previous Top Next
graphvhigh as double

contains the highest price from the bars that are currently displayed on the screen


graphvlow
 Previous Top Next
graphvlow as double

contains the lowest price from the bars that are currently displayed on the screen


alltimehigh
 Previous Top Next
alltimehigh as double

contains the highest price from the total number of bars that are loaded from the current chart.


alltimelow
 Previous Top Next
alltimelow as double

contains the lowest price from the total number of bars that are loaded from the current chart.


colors
 Previous Top Next
The following color variables can be used for example for the color of the indicator's buffers:

red
orange
yellow
green
blue
lightblue
purple
gray
black
pink
olive
aqua
crimson
gold
white
mediumseagreen
lightgray
sweetblue
darkgreen
darkslategray
teal
navy
maroon
indigo
midnightblue
darkblue
darkolivegreen
saddlebrown
forestgreen
olivedrab
seagreen
darkgoldenrod
darkslateblue
sienna
mediumblue
brown
darkturquoise
dimgray
lightseagreen
darkviolet
firebrick
mediumvioletred
chocolate
steelblue
goldenrod
mediumspringgreen
lawngreen
cadetblue
darkorchid
yellowgreen
limegreen
orangered
darkorange
chartreuse
lime
springgreen
deepskyblue
magenta
slategray
peru
blueviolet
lightslategray
deeppink
mediumturquoise
dodgerblue
turquoise
royalblue
slateblue
darkkhaki
indianred
mediumorchid
greenyellow
mediumaquamarine
darkseagreen
tomato
rosybrown
orchid
mediumpurple
palevioletred
coral
cornflowerblue
darkgray
sandybrown
mediumslateblue
clrtan
darksalmon
burlywood
hotpink
salmon
violet
lightcoral
skyblue
lightsalmon
plum
khaki
lightgreen
aquamarine
silver
lightskyblue
lightsteelblue
palegreen
thistle
powderblue
palegoldenrod
paleturquoise
wheat
navajowhite
moccasin
lightpink
gainsboro
peachpuff
bisque
lightgoldenrod
blanchedalmond
lemonchiffon
beige
antiquewhite
papayawhip
cornsilk
lightyellow
lightcyan
linen
lavender
mistyrose
oldlace
whitesmoke
seashell
ivory
honeydew
aliceblue
lavenderblush
mintcream
snow

Colors preview:

Example with Ichimoku.qtr

[...]
indicolor(drawid)=red
bufnamestr="Tenkan_Buffer"
.Data_Indi.Cell(drawid,lbar)= varptr$(getbufferdata(varptr(bufnamestr),varptr(offsetstr)))
[...]


getanglesubsq9_2()
 Previous Top Next
getanglesubsq9_2(cell_number)

Get the angle of a specified number on the Square Of Nine


npos


nposrela


firsttimevalue


colordlg


writealivetimer


bufcntep


firstbufcntsep


aboutform


aboutcanvas


aboutimg


aboutTimer


aboutFont


caldatey


caldatem


caldated


caldate


caldate2


readmeFont


file


fileqtp


PopupMenu


popupmenubar


xval


yval


graphvend


graphendyear


graphendmonth


graphendday


graphbeginyear


graphbeginmonth


graphbeginday


graphvi


graphenddate


graphbegindate


graphendtime


graphbegintime


graphbarnbbegin


graphbarnbend


graphbarnbspace


yscalehigh


yscalelow


graphhratio


graphvratio


indiinilist


indinames


nli


indicanvas


indidesc


indilisty


nld


descordercount


MenuItem


RecentMenuItem


CharttypeMenuItem


AxistypeMenuItem


PeriodicityMenuItem


TemplateMenuItem


IndicatorsMenuItem


IndicatorsTrendMenuItem


IndicatorsOscillatorMenuItem


IndicatorsVolumesMenuItem


LinesMenuItem


ChannelMenuItem


GannMenuItem


FibonacciMenuItem


ShapesMenuItem


demammi


delallj


dstf


dsstartcalendarobjm


dsstartcalendarobjd


dsstartcalendarobjy


dsendcalendarobjm


dsendcalendarobjd


dsendcalendarobjy


filestream


OpenDialog


indilisti


indicanvascount


countcanvas


qtpList


indil


inputsinratio


inputsinratiotxt


inputperiodmult


periodmulttxt


csvFile


datecsv


timecsv


opencsv


highcsv


lowcsv


closecsv


volumecsv


savedialogfilename


freq


freqfact


kbarlow


kbarlowprev


kbarhigh


kbarhighprev


kbarclose


kbarcloseprev


kbaropen


kbaropenprev


distcloseopen


distclosehigh


distcloselow


revdate


revtime


inputtxt


inputvectortxt


mousexval


mouseyval


xcur1px


xcur2px


ycur1px


ycur2px


SaveDialog


followmodepath


csvi


symbolslistbox2


csvlistsize


pid


revtfmu


old


lastver


retuser


readmsg


inputaddbars


quotestream


busystream


avincr


avincr2


tickersstream


p


LegendLen


XMax


XMin


YMax


YMin


Test


x1


y1


x2


y2


Spacer


TicVal


LabelLen


BorderHgt


i


j


k


LineLen


LMark


Source


Page


OldBW


FileCopy


ShellRedirCallBack


timerautomationsub


ButtonClick


TimerExpired


resizesplitcurpos


resizesplithcurpos


moveobjectcursor


beginauto2


beginexitsignal2


beginexitsignal3


chatformtimerexpired


clockontimersub


quoteontimersub


enablegetchartbtnsub


addtomenurecentsub


addtomenutemplaterecentsub


openrecentsub


loadtemplaterecentsub


template_OnClick


arrows_OnClick


CoolBtns_Up


moveplanetred


moveplanetgreen


moveplanetwhite


InitStars


SetFocus


mouse_event


hide_...form


onclickprimestopsub


primenumbertypecombochangesub


primeformulacombochangesub


symbolrefreshintervaleditonchange


getquoteonoffbutonclick


previousbarbuttonclick


nextbarbuttonclick


citytopocombochange


checkupdatesstartupcheckboxonchange


generalsettingstimeintervaldatasource...editonchange


setspacechart


setspacechartnorefresh


livechartrefreshintervaleditchangesub


choosepencolor


chartcolorssub


paintsq9


drawsq9


clearsq9


getanglesubsq9


btnOnClick


frmMainResize


frmMainClose


frmMainonshowsub


Buttonf2Click


importfile


importfile2


exportfile


export_indicator_data


Period_Converter_sub


opencsvfoldersub


exportfilename


dispmaxbarssub


setup


Scrolling


dispbarsok_click


dispbarspd


dispbarspu


dispbarsmd


dispbarsmu


TimerOverdispbarsp


TimerOverdispbarsm


closedispchart_click


dispchartnbchanged


tfmultok_click


tfmultp_click


tfmultm_click


TimerOvergraphtimer


indiform


btnaddindi_click


btndelindi_click


refresh_chart


uncheck_all_indi_sub


reimportfile


settingsclick


quit


about


mixerform


importfileaddition


importfileadditiondel


otheropssub


updatemixerlists


paint


paintabout


ClearAll2


draw


drawindi


drawindi2


drawchart2


drawxy2


ClearBuffer2


DetPos


graphclicked


timerovergraphclick


settingsbtnclick


importcsv


importbmp


showtoolsinfo


livesub


formtoolsinforesized


dispinfotext


DetPos2


sepindiclicked


timeroversepindiclick


resetbtns


freeze


unfreeze


scrollmodebtnclick


disablescrollmode


scrollmodeoff


chartscursormode


closedispcanvas_click


showcanvasclick


showdescrindi


showeditor


graphmousedown


sepindimousedown


trackbchange


opencsvnotepadsub


hideformp


showformp


graphcursorpos


sepindicursorpos


graphcursorpos2


sepindicursorpos2


showobjectslistfrm


charttypecombochange


justrefreshchart


previoustoolsclick


nexttoolsclick


savebmp


printchart


frmmainonmw


showtoolsclick


showtoolbarclick


resizesplitmd


resizesplitmu


resizersplithmd


resizesplithmu


deleteobjectcursor


moveobjectclick


writetolog


refreshgrids


refreshgrids2


refreshgridsnorefresh


useindischeckboxsub


tfmultcombosub


dispbarsswitchsub


findbarfromfile


useindisub


xscaletrackbarsub


changepriceratiosub


changepriceratiosub2


axistypecombosub


choosemailer


edit...change


unlockdatasourcesub


drawp


initializechart2


RedrawChart2


savebuffertmp


bufcntreset


firstbufcntreset


savebuffertmpsimple


savebuffertmpsimplez


restorebuffertmpz


restorebuffertmp


restorefirstbuffertmpz


deleteafter


chartconvsub


exp10sub


sinusoidalsub


frmreadmeresized


frmwhatsewresized


tfmultchange


findbar


findbarsub


disableallindis


indilist_dblclick


autoreverse


autoreverse2


autoreverse3


autoreverse4


autoreverse5


autoreverse6


autoreverse7


followmode


stopclicked


filesettings


ChangeDirectory


choosefile


importfileauto


importfileautoexpert


importfileauto2


importfile1m


signalsnd


signalsndfrmclose


writealive


writealive2


barsdisplayedchange


...apikeyeditchange


alphavantagesearchsymbolbuttonclicksub


cntbarseditchange


generalsettings


beginauto


beginexitsignal


fdown


fpaint


pdown


pup


pmove


keydown


fkeyup


operations


polyclick


mailersub


followmodeactivate


savemailersub


restoremailersub


datasource


dsokclick


datasourcewebportalssub


importfileyahoo


importfileyahoo2


exportfileyahoo


importfilealphavantage


importfilefinnhub


importfiletiingo


importfiletiingo_IEX


importfilestooq


importfilegoogle


savegridtmp


attribtf


attribtfeditItemChanged


writetf


openhelpsub


viewreadme


viewwhatsnew


speechinitialization


speechdeinitialization


checkusespeech


showspeechform


say


exportfileauto


updates


whatsnewsub


websitesub


hotkeysub


chatformsub


swephformsub


swephformonshowsub


chatformonshowsub


chartformonclosesub


sendmsgbtnonclicksub


sendmsgeditkeydown


dssymbolcombochange


reimportfilesub


pricescaleplusbtnclick


pricescaleminusbtnclick


Compute_sweph_Click


detect_timeframe


addbars


shiftchart


zoominchartsub


zoomoutchartsub


chartgridsub


chartvolumessub


astrowheelsettingssub


formsq9showsub


premarketsub


...busytimersub


...getdatasub


showsymbolslist


showalphavantageform


openwebportalsub


startdateyf


enddateyf


chartsavecanvas


loadtemplatesub


loadtemplatesubauto


savetemplatesub


loadtfchartsub


loadtfchartmenusub


selectindicatormenusub


selectobjectmenusub


fullscreensub


...charttype


...axistype


InitVFont


VPrintAng


livechartrefreshtimersub


unlockgetchartbtnsub


initialize_watchlist


startstreamsub_watchlist


stopstreamsub_watchlist


showwatchlist


timerover


resize


abfrmclose


...CoolBtn_OnClick


editorresize


topicclick


delallobjdbclick


delrowibjdbclick


delallallobjdbclick


objecttypecombochange


hideallobjectsdb


datetimesetyf


datetest


ClearBuffer


SetSize


ScaleAxis


SetScale


SetSeries


DrawAxes


DrawTitles


DrawLabels


DrawMarker


DrawLegend


DrawBar


DrawXY


DrawLine


DrawBox


DrawPie


Initialize


PaintChart


ClearAll


DrawChart


RedrawChart


SaveChart


PrintChart


btnonclick(drawbox)
 Previous Top Next
btnonclick(drawbox) reloads all bars in memory, reloads indicators, repaint the current chart on the screen, replot indicators and drawings.
Usage examples : to refresh the chart after loading an indicator, to update the chart after scrolling it or with realtime quotes.


reimportfile()
 Previous Top Next
reimportfile() is used to reopen the CSV file of the current chart. Shortcut : "r"


degtorad
 Previous Top Next
FUNCTION degtorad(deg AS DOUBLE) AS DOUBLE

Converts degrees to radians


MKSubDir


StripPath


isLeapYear


DateSerial


DateFromSerial


getanglesubsq9_2


txtformat


ibarshift


StripFileName


InetIsOffline


FGetFileHTTP_URLDownloadToFile


monthtostr


strtomonth


outdeg


outdeg3


set_strlen


timeminute


timehour


timedayofweek


RetSymbol


get_helio_longitude


get_geo_longitude


get_ascmc


RowTotal


filegetline


filegetlinecount


filegetalllines


filegetlinesarray


delfile


useindifunc


displayedfileminusone


openedfilesnbminusone


displayedfileplusone


openedfilesnbplusone


setdisplayedfile


setnumbars


setnumbars_first


setnumbars_last


setrowgridoffset


setchartbars


setchartbarstmp


setcharttf


setbars


setcntbarsedit


getbufferdata


setimportedfile


shiftgridsonebackward


refreshgridscpp


getdatagrid


setdatagrid


getchartbars


getchartbarstmp


tfmultok_clickcpp


savegridtmpcpp


writetfcpp


playsoundcpp


timecpp


swe_julday


swe_date_conversion


swe_deltat


swe_calc


swe_get_planet_name


unix_time_to_date_old


unix_time_to_date


date_to_unix_time


swe_sidtime


swe_house_pos


swe_houses


swe_houses_ex


swe_set_topo_and_swe_calc


swe_pheno_ut


timebcpp


calculate_seconds_since_1_1_1970_cpp


current_time


Scilab_test


conic_section


getdayofyear


rqmod


setchartdatasource


setchartsymbolname


AxisType


TitleType


SeriesType


pointstype


QChart


objectcursor


mousepos


ELLIPSE2


qchart2


opena[]
 Previous Top Next
opena[0] : get the open price of the first bar from the right to the left


higha[]
 Previous Top Next
higha[0] : get the highest price of the first bar from the right to the left


lowa[]
 Previous Top Next
lowa[0] : get the lowest price of the first bar from the right to the left


closea[]
 Previous Top Next
closea[0] : get the close price of the first bar from the right to the left


datea[]
 Previous Top Next
datea[0] : get the date of the open of the first bar from the right to the left


timea[]
 Previous Top Next
timea[0] : get the time of the open of the first bar from the right to the left


volumea[]
 Previous Top Next
volumea[0] : get the volume of the first bar from the right to the left


Constants
 Previous Top Next
const int PERIOD_M1=1;
const int PERIOD_M5=5;
const int PERIOD_M15=15;
const int PERIOD_M30=30;
const int PERIOD_H1=60;
const int PERIOD_H4=240;
const int PERIOD_D1=1440;
const int PERIOD_W1=10080;
const int PERIOD_MN1=43200;
const int MODE_SMA=0;
const int MODE_EMA=1;
const int MODE_SMMA=2;
const int MODE_LWMA=3;
const int PRICE_CLOSE=0;
const int PRICE_OPEN=1;
const int PRICE_HIGH=2;
const int PRICE_LOW=3;
const int PRICE_MEDIAN=4;
const int PRICE_TYPICAL=5;
const int PRICE_WEIGHTED=6;
const int MODE_OPEN=0;
const int MODE_LOW=1;
const int MODE_HIGH=2;
const int MODE_CLOSE=3;
const int MODE_VOLUME=4;
const int MODE_TIME=5;
const bool True=1;
const bool False=0;


chartbars[]
 Previous Top Next
int chartbars[int chart_number]

contains the total number of bars of the specified chart number


displayedfile
 Previous Top Next
int displayedfile

contains the number of the chart which is currently displayed on the screen


True
 Previous Top Next
1


False
 Previous Top Next
0


MODE_TIME
 Previous Top Next
5


MODE_VOLUME
 Previous Top Next
4


MODE_CLOSE
 Previous Top Next
3


MODE_HIGH
 Previous Top Next
2


MODE_LOW
 Previous Top Next
1


MODE_OPEN
 Previous Top Next
0


PRICE_CLOSE
 Previous Top Next
0


PRICE_OPEN
 Previous Top Next
1


PRICE_HIGH
 Previous Top Next
2


PRICE_LOW
 Previous Top Next
3


PRICE_MEDIAN
 Previous Top Next
4


PRICE_TYPICAL
 Previous Top Next
5


PRICE_WEIGHTED
 Previous Top Next
6


PERIOD_M1
 Previous Top Next
1


PERIOD_M5
 Previous Top Next
5


PERIOD_M15
 Previous Top Next
15


PERIOD_M30
 Previous Top Next
30


PERIOD_H1
 Previous Top Next
60


PERIOD_H4
 Previous Top Next
240


PERIOD_D1
 Previous Top Next
1440


PERIOD_W1
 Previous Top Next
10080


PERIOD_MN1
 Previous Top Next
43200


cntbarsedit
 Previous Top Next
2000


importedfile
 Previous Top Next
static arrayofchars importedfile;


bars
 Previous Top Next
static int bars;


openedfilesnb
 Previous Top Next
0


rowgridoffset
 Previous Top Next
0


numbars


numbars_last


numbars_first


charttf


chartbarstmp


debugmsg


grid


gridtmp


date1...43200


time1...43200


open1...43200


high1...43200


low1...43200


close1...43200


volume1...43200


datetimeserial


datetimeserial1...43200


datef


timef


openf


highf


lowf


closef


volumef


chartdatasource


chartsymbolname


MODE_SMA


MODE_EMA


MODE_SMMA


MODE_LWMA


MODE_MAIN


MODE_SIGNAL


MODE_PLUSDI


MODE_MINUSDI


MODE_UPPER


MODE_LOWER


MODE_GATORJAW


MODE_GATORTEETH


MODE_GATORLIPS


MODE_TENKANSEN


MODE_KIJUNSEN


MODE_SENKOUSPANA


MODE_SENKOUSPANB


MODE_CHIKOUSPAN


arrayofchars


arrayofdoubles


arrayofints


arrayoflongs


ibarshift()
 Previous Top Next
The function returns bar shift with the open time specified.
int ibarshift (int timeframe, // timeframe
long datetimeserial, // time
int limit, // bars back
bool exact=0 // mode
);

Parameters
timeframe
[in] Timeframe. It can be one of the period constants .
datetimeserial
[in] Value to find (bar's open unix time).
limit
[in] Limit the search to the specified number of bars back
exact=0
[in] Return mode when bar not found (0 : ibarshift returns nearest, 1 : ibarshift returns -1).
Returned value
Bar shift with the open time specified. If the bar having the specified open time is missing, the function will return -1 or the nearest bar shift depending on the exact.
Example:
long some_time=timeb[5];
int shift=ibarshift(PERIOD_D1,some_time);
Printf("shift of bar with open time ",some_time," is ",shift);


ihighest()
 Previous Top Next
Returns the shift of the maximum value over a specific number of bars depending on type.
int ihighest(int timeframe, // timeframe
int type, // timeseries
int count, // count
int start=0 // start
);

Parameters
timeframe
[in] Timeframe. It can be any of PERIOD_ enumeration values.
type
[in] Series array identifier. It can be any of the MODE_ enumeration values.
count=WHOLE_ARRAY
[in] Number of bars (in direction from the start bar to the back one) on which the search is carried out.
start=0
[in] Shift showing the bar, relative to the current bar, that the data should be taken from.
Returned value
The shift of the maximum value over a specific number of bars or -1 if error.
Example:
double val;
//--- calculating the highest value on the 20 consecutive bars in the range
//--- from the 4th to the 23rd index inclusive on the current chart
int val_index=[ihighest(1440,MODE_HIGH,20,4)];
if(val_index!=-1) val=lowa[val_index];
else Printf("Error in call ihighest.");


ilowest()
 Previous Top Next
Returns the shift of the minimum value over a specific number of bars depending on type.
int ilowest(int timeframe, // timeframe
int type, // timeseries
int count, // count
int start=0 // start
);

Parameters
timeframe
[in] Timeframe. It can be any of PERIOD_ enumeration values.
type
[in] Series array identifier. It can be any of the MODE_ enumeration values.
count=WHOLE_ARRAY
[in] Number of bars (in direction from the start bar to the back one) on which the search is carried out.
start=0
[in] Shift showing the bar, relative to the current bar, that the data should be taken from.
Returned value
The shift of the minimum value over a specific number of bars or -1 if error.
Example:
double val;
//--- calculating the lowest value on the 20 consecutive bars in the range
//--- from the 4th to the 23rd index inclusive on the current chart
int val_index=[ilowest(1440,MODE_LOW,20,4)];
if(val_index!=-1) val=lowa[val_index];
else Printf("Error in call ilowest.");


timeb()
 Previous Top Next
long timeb(int bar)

Series array that contains open time of each bar of the current chart. Data like datetime represent time, in seconds, that has passed since 00:00 a.m. of 1 January, 1970.
Series array elements are indexed in the reverse order, i.e., from the last one to the first one. The current bar which is the last in the array is indexed as 0. The oldest bar, the first in the chart, is indexed as bars-1.


itimeb()
 Previous Top Next
Returns Time value for the bar of specified symbol with timeframe and shift.

long itimeb(int period, // timeframe
int bar // shift
);

Parameters
period
[in] Timeframe. It can be any of PERIOD_ enumeration values.
bar
[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).
Returned value
Time value for the bar of specified symbol with timeframe and shift.
Note
For the current chart, the information about open bar times is in the timea[] predefined array.
Example:
Printf("Current bar for USDCHF H1: ",itimeb(PERIOD_H1,0),", ", iopen(PERIOD_H1,0),", ",
ihigh(PERIOD_H1,0),", ", ilow(PERIOD_H1,0),", ",
iclose(PERIOD_H1,0),", ", ivolume(PERIOD_H1,0));


timeminute()
 Previous Top Next
Returns the minute of the specified unix time.
double timeminute(double seconds // unix time
);

Parameters
seconds
[in] double as number of seconds elapsed since midnight (00:00:00), January 1, 1970.
Returned value
Minute (0-59) for the specified time.
Example:
int m=timeminute(timeb(0));


timehour()
 Previous Top Next
Returns the hour of the specified unix time.
double timehour(double seconds // unix time
);

Parameters
seconds
[in] double is the number of seconds elapsed since midnight (00:00:00), January 1, 1970.
Returned value
Hour of the specified time.
Example:
int h=timehour(timeb(0));


timedayofweek()
 Previous Top Next
Returns the zero-based day of week (0 means Sunday,1,2,3,4,5,6) of the specified unix time.
int timedayofweek(long timeb // unix time
);

Parameters
date
[in] long as number of seconds elapsed since midnight (00:00:00), January 1, 1970.
Returned value
The zero-based day of week (0 means Sunday,1,2,3,4,5,6) of the specified date.
Example:
int weekday=timedayofweek(timeb(0));
// day is 2 - Tuesday


timedayofweekold


mathmax()
 Previous Top Next
The function returns the maximal value of two values.
double mathmax(
double value1, // first value
double value2 // second value
);
Parameters
value1
[in] First numeric value.
value2
[in] Second numeric value.
Return Value
The largest of the two values.


mathmin()
 Previous Top Next
The function returns the minimal value of two values.
double mathmin(
double value1, // first value
double value2 // second value
);
Parameters
value1
[in] First numeric value.
value2
[in] Second numeric value.
Return Value
The smallest of the two values.


idate()
 Previous Top Next
char* idate(int timeframe,int shift)


itime()
 Previous Top Next
char* itime(int timeframe,int shift)


iopen()
 Previous Top Next
double iopen(int timeframe,int shift)


ihigh()
 Previous Top Next
double ihigh(int timeframe,int shift)


ilow()
 Previous Top Next
double ilow(int timeframe,int shift)


iclose()
 Previous Top Next
double iclose(int timeframe,int shift)


ivolume()
 Previous Top Next
int ivolume(int timeframe,int shift)


imaonarray()
 Previous Top Next
imaonarray

Calculates the Moving Average indicator on data, stored in array, and returns its value.

double imaonarray(
double array[], // array with data
int total, // number of elements
int ma_period, // MA averaging period
int ma_shift, // MA shift
int ma_method, // MA averaging method
int shift // shift
);
Parameters

array[] :
[in] Array with data.

total :
[in] The number of items to be counted. 0 means the whole array.

ma_period :
[in] Averaging period for calculation.

ma_shift :
[in] MA shift. Indicators line offset relate to the chart by timeframe.

ma_method :
[in] Moving Average method. It can be any of MA METHOD constants values.

shift :
[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).

Returned value :
Numerical value of the Moving Average indicator, calculated on data, stored in array[].

Note :
Unlike ima(...), the imaonarray() function does not take data by timeframe, the applied price. The price data must be previously prepared. The indicator is calculated from left to right.

Example:

double macurrent=imaonarray(ExtBuffer,0,5,0,MODE_LWMA,0);
double macurrentslow=imaonarray(ExtBuffer,0,10,0,MODE_LWMA,0);
double maprev=imaonarray(ExtBuffer,0,5,0,MODE_LWMA,1);
double maprevslow=imaonarray(ExtBuffer,0,10,0,MODE_LWMA,1);
//----
if(maprev<maprevslow && macurrent>=macurrentslow)
Alert("crossing up");


writetofile
 Previous Top Next
char* writetofile ( char* flnme,int arrsize )


isleapyear
 Previous Top Next
long isleapyear(long year)


idatetimeserial
 Previous Top Next
long idatetimeserial(int timeframe,int shift)

cyberrbtmail wrote:

To me the easiest technique for working with date and time
calculations on the PC is to implement DateSerial and TimeSerial.
The following DateSerial counts the number of days since 1-1-0001. A
TimeSerial counts the number of seconds since 00:00:00.


ima()
 Previous Top Next
ima calculates the Moving Average indicator and returns its value.

double ima(
int timeframe, // timeframe
int ma_period, // MA averaging period
int ma_shift, // MA shift
int ma_method, // averaging method
int applied_price, // applied price
int shift // shift
);

Parameters:

timeframe
[in] Timeframe in minutes. It can be one of the period constants .

ma_period
[in] Averaging period for calculation.

ma_shift
[in] MA shift. Indicators line offset relate to the chart by timeframe.

ma_method
[in] Moving Average method. It can be any of the mode constants .

applied_price
[in] Applied price. It can be any of the applied price constants .

shift
[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).

Returned value:
Numerical value of the Moving Average indicator.

Example:
AlligatorJawsBuffer[i]=ima(1440,13,8,MODE_SMMA,PRICE_MEDIAN,i);


iapplied_price()
 Previous Top Next
double iapplied_price(int applied_price,int timeframe,int shift)

Returns the price with the specified timeframe and with the specified applied price which can be one of the price constants .


itype()
 Previous Top Next
double itype(int mode,int timeframe,int shift)

Returns the price with the specified timeframe and with the specified mode which can be one of the mode constants .


irsi()
 Previous Top Next
irsi

Calculates the Relative Strength Index indicator and returns its value.

double irsi(
int timeframe, // timeframe
int period, // period
int applied_price, // applied price
int shift // shift
);

Parameters

timeframe

[in] Timeframe in minutes. It can be one of the period constants .

period

[in] Averaging period for calculation.

applied_price

[in] Applied price. It can be any of the applied price constants .

shift

[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).

Returned value

Numerical value of the Relative Strength Index indicator.

Example:

if (irsi(1440,14,PRICE_CLOSE,0)>iRSI(1440,14,PRICE_CLOSE,1)) return(0);


icci()
 Previous Top Next
icci

Calculates the Commodity Channel Index indicator and returns its value.

double icci(
int timeframe, // timeframe
int period, // averaging period
int applied_price, // applied price
int shift // shift
);

Parameters

timeframe

[in] Timeframe in minutes. It can be one of the period constants .

period

[in] Averaging period for calculation.

applied_price

[in] Applied price. It can be any of the applied price constants .

shift

[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).

Returned value

Numerical value of the Commodity Channel Index indicator.

Example:

if (icci(1440,12,PRICE_TYPICAL,0)>iCCI(1440,20,PRICE_TYPICAL,0)) return(0);


dateserial
 Previous Top Next
long dateserial(long y,long m,long d)

cyberrbtmail wrote:

To me the easiest technique for working with date and time
calculations on the PC is to implement DateSerial and TimeSerial.
The following DateSerial counts the number of days since 1-1-0001. A
TimeSerial counts the number of seconds since 00:00:00.


iatr()
 Previous Top Next
iatr

Calculates the Average True Range indicator and returns its value.

double iatr(
int timeframe, // timeframe
int period, // averaging period
int shift // shift
);

Parameters

timeframe

[in] Timeframe in minutes. It can be one of the period constants .

period

[in] Averaging period for calculation.

shift

[in] Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).

Returned value

Numerical value of the Average True Range indicator.

Example:

if (iatr(1440,12,0)>iatr(1440,20,0)) return(0);


calculate_seconds_since_1_1_1970
 Previous Top Next
long calculate_seconds_since_1_1_1970(long Y1,long M1,long D1,int H1,int m1,int S1)

Calculate Unix time in seconds with specified Year, Month, Day, Hours, Minutes and Seconds


timeday
 Previous Top Next
Returns the day of month (1 - 31) of the specified date.
int timeday(long timeb)
Parameters
timeb
[in] Datetime as number of seconds elapsed since midnight (00:00:00), January 1, 1970.
Returned value
Day of month (1 - 31) of the specified date.
Example:
int day=timeday(current_time);


timemonth
 Previous Top Next
Returns the month number of the specified time.
int timemonth(long timeb)
Parameters
timeb
[in] Datetime as number of seconds elapsed since midnight (00:00:00), January 1, 1970.
Returned value
Month number (1-January,2,3,4,5,6,7,8,9,10,11,12) of the specified time.
Example:
int m=timemonth(current_time());


unix_time_to_date
 Previous Top Next
char* unix_time_to_date(char* unix_time)

Gives the date from a specified Unix time


date_to_unix_time
 Previous Top Next
char* date_to_unix_time(char* parameters)

parameters: long Y1;long M1;long D1;int H1;int m1;int S1;

Gives the Unix time from a specified date and time


ut_to_date
 Previous Top Next
char* ut_to_date(long unix_time)

Gives the date from a specified Unix time


current_time
 Previous Top Next
char* current_time()

Calculates the current Unix time


toconic
 Previous Top Next
int toconic(FLOAT p0[3], FLOAT p1[3], FLOAT p2[3], FLOAT p3[3], FLOAT p4[3],
FLOAT *a, FLOAT *b, FLOAT *c, FLOAT *d, FLOAT *e, FLOAT *f)

/* Code to find the equation of a conic */
/* Tom Davis */
/* April 12, 1996 */

/* toconic takes five points in homogeneous coordinates, and returns the
* coefficients of a general conic equation in a, b, c, ..., f:
*
* a*x*x + b*x*y + c*y*y + d*x + e*y + f = 0.
*
* The routine returns 1 on success; 0 otherwise. (It can fail, for
* example, if there are duplicate points.
*
* Typically, the points will be finite, in which case the third (w)
* coordinate for all the input vectors will be 1, although the code
* deals cleanly with points at infinity.
*
* For example, to find the equation of the conic passing through (5, 0),
* (-5, 0), (3, 2), (3, -2), and (-3, 2), set:
*
* p0[0] = 5, p0[1] = 0, p0[2] = 1,
* p1[0] = -5, p1[1] = 0, p1[2] = 1,
* p2[0] = 3, p2[1] = 2, p2[2] = 1,
* p3[0] = 3, p3[1] = -2, p3[2] = 1,
* p4[0] = -3, p4[1] = 2, p4[2] = 1.
*
* But if you want the equation of the hyperbola that is tangent to the
* line 2x=y at infinity, simply make one of the points be the point at
* infinity along that line, for example:
*
* p0[0] = 1, p0[1] = 2, p0[2] = 0.
*/


getdayofyear
 Previous Top Next
int getdayofyear (char* year,char* month,char* day)

Gives the day of year from a date


writetofile


istochastic


iadx


irvi


DoEvents


unix_time_to_datecpp


irsionarray


replaceSubstring


mypow


convert


About QTGen
QTGen is a small executable intended to facilitate indicators creation. It creates all the necessary files, with the minimal code needed for the new indicator you want to create. Once your indicator is created with QTGen, you just need to open the files created in the indictors directory with notepad and edit the code.
For more details, see How to create a new indicator


About QTGuard
QTGuard is a small program intended to supervise QChartist when it works under "auto-pilot" mode (automated analysis or expert advisor mode). Its role is to detect when QChartist freezes, crashs, and/or doesn't respond any longer. If QChartist crashs, QTGuard will kill its process and restart the program the way the "auto-pilot" can continue its job.

pkill and QCKill
pkill is a Linux command to kill process by its name
QCKill is a Windows command to kill QChartist.Exe

For Linux Wine users:
In order to know if you have to use pkill or QCKill method in QTGuard,
Choose "Use pkill (method 1) first"
Click on "start timer" and click on "start expert"
wait a few seconds, QChartist will start automatically and begin to scan tickers
In QChartist click on the "Stop" button in the top right corner
Wait 1 or 2 minutes, QTGuard will try to kill QChartist and restart it (with pkill method 1)
If QTGuard does not manage to kill QChartist before restarting
In QTGuard, click on "stop timer" and "stop expert"
Close QChartist manually
Try the "Use QCKill (method 2) in QTGuard GUI
Click on "start timer" and click on "start expert"
wait a few seconds, QChartist will start automatically and begin to scan tickers
In QChartist click on the "Stop" button in the top right corner
Wait 1 or 2 minutes, QTGuard will try to kill QChartist and restart it (with QCKill method 2)

Under Windows, pkill method 1 or QCKill method 2 is the same and it doesn't matter whatever you use method 1 or 2


Getting started
QChartist works perfectly under Ubuntu with Wine.
Just copy QChartist into your ~/.wine/drive_c/QChartist
Run QChartist.exe with wine or run QTStart.sh in the console to recompile the source code.
Before trying to run QTStart.sh you need to do this : chmod u+x QTStart.sh


Important points

Key points
 Previous Top Next
- Don't risk more than 2 to 5% of your capital. Traders who risk more than 10% of their capital per trade are very rare.

- The minimum profit/risk ratio that who should use is 2:1. For example if you have a target of 50 pips, you should not risk more than 25 pips for the stoploss.

- You should buy dips on uptrends and sell peaks on downtrends. The main trading systems used in FOREX are those that follow trends (a popular saying in the market is "the trend is your friend"), or systems that buy or sell on breakouts.


Money management
 Previous Top Next
Amount of Equity Lost | Amount of Return Necessary to Restore to Original Equity Value
25% | 33%
50% | 100%
75% | 400%
90% | 1000%
This table shows just how difficult it is to recover from a debilitating loss.

It is important to note that a trader would have to earn 100% on his or her capital - a feat accomplished by less than 1% of traders worldwide - just to break even on an account with a 50% loss. At 75% drawdown, the trader must quadruple his or her account just to bring it back to its original equity – a task beyond the abilities of the mere mortal!

While most traders are familiar with the figures above, they are routinely ignored. We hear stories of traders losing an entire lifetime’s worth of profits in a single trade gone wrong. This is more often than not a result of sloppy money management, with no hard stops and more than anything else due simply to a loss of discipline.

Money management is the critical difference between winners and losers. It has been proved that if 100 traders start trading using a system with 60% winning odds, only 5 traders will be in profit at the end of the year. Despite 60% winning odds, 95% of all traders will lose because of their poor money management. Money management is the most significant part of any trading system. Most of traders don't understand how important it is. Make sure you are NOT one of them.

It is vitally important to understand the concept of money management and understand the difference between it and trading decisions. Money management represents the amount of money you are going to put on one trade and the risk your going to accept for this trade.

Firstly, you should understand the following term: Core equity
Core equity = Starting balance - Amount in open positions.

If you have a balance of 10,000$ and you enter a trade with 1,000$ then your core equity is 9,000$. If you enter another 1,000$ trade, your core equity will be 8,000$

This is very important to understand since your money management MUST depend on this equity.

The following model of money management provides the combination of a high annual return on investment while simultaneously limiting risk. The standard account that will be discussed is a 100,000$ account with 20:1 leverage . You can adapt this strategy to fit smaller or bigger trading accounts.

The strategy

Your risk per a trade should never exceed 3% per trade. It's better to adjust your risk to 1% or 2% the lower the better. If you are confident in your trading system then you can lever your risk up to a maximum of 3%

1% risk of a 100,000$ account = 1,000$

You should adjust your stop loss so that you never lose more than 1,000$ per a single trade.

If you are a short term trader and you place your stop loss 50 pips below/above your entry point .
50 pips = 1,000$
1 pips = 20$

The size of your trade should be adjusted so that you risk 20$/pip. With 20:1 leverage, your trade size will be 200,000$

If the trade is stopped, you will lose 1,000$ which is 1% of your balance.

This trade will require 10,000$ = 10% of your balance.

If you are a long term trader and you place your stop loss 200 pips below/above your entry point.
200 pips = 1,000$
1 pip = 5$

The size of your trade should be adjusted so that you risk 5$/pip. With 20:1 leverage, your trade size will be 50,000$

If the trade is stopped, you will lose 1,000$ which is 1% of your balance.

This trade will require 2,500$ = 2.5% of your balance.

This is just an example. Your equity and leverage provided by your broker may differ from this formula. The most important is to stick to the % risk rule. Never risk too much in one trade. It's a fatal mistake when a trader lose 2 or 3 trades in a row, then he may be overconfident that his next trade will be a winning one and he may add more money to this trade. This is how you can blow out your account in a short time! A disciplined trader will never let his emotions and greed control his decisions.


MinGW

About MinGW
 Previous Top Next
MinGW (Minimalist GNU for Windows), formerly mingw32, is a free and open source software development environment for creating Microsoft Windows applications.

It includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows (assembler, linker, archive manager), a set of freely distributable Windows specific header files and static import libraries which enable the use of the Windows API, a Windows native build of the GNU Project's GNU Debugger, and miscellaneous utilities.

MinGW is used to compile the C++ code contained in QChartist.


RapidQ

About RapidQ
 Previous Top Next
Rapid-Q is a BASIC-like programming language for the 32-bit multiplatform. It provides graphical user interfaces (GUI) and CONSOLE programs. The compiler is actually an interpreter for Windows, Linux, and Unix. Rapid-Q compiles your BASIC source code into byte-code, which is normally attached to an interpreter, but can also be run from other programming languages using specialized DLLs. Also Rapid-Q supports partial object-oriented programming. If you're familiar with either QBasic, PowerBasic, or even VisualBasic, you'll be able to program in Rapid-Q in no time. The overall goal of the project was to provide an alternative BASIC programming language that's not only FREE, but good and easy to use. Rapid-Q is constantly being improved by public support.
The Rapid-Q compiler was written and developed by William Yu. The final release of the software was in BETA testing stage. However, Mr. Yu sold the rights to the owner of RealBASIC(c). Now William Yu no longer supports Rapid-Q. Do not even think about contacting either William Yu or the staff of RealBASIC about Rapid-Q. They would prefer you buy their BASIC compiler. Just because Rapid-Q was released in Beta stage doesn't mean the compiler is not fully functional! Rapid-Q can make very useable programs of significant complexity. Also don't expect the compiler to become "open source."
In Mr. Yu's words, "Being a BASIC programmer at heart, I looked through the eyes of a user, and added the features and ease of use that I like to see in a good programming language... Perhaps in the future, some of these features will become standard in all BASIC languages. The advanced features that Rapid-Q offers need not be used at all, but is available when you get more comfortable with the language itself. For example, Rapid-Q offers object/component creation, function pointers, procedures with infinite parameters, variants, while still maintaining all the fundamental features that most BASIC programmers are familiar with, ie. GOTO, GOSUB, line numbers, etc. This makes converting legacy code much easier. The only feature which deviates from traditional BASIC languages is file handling. I believe that once you understand how file and memory streams work, this can be a huge benefit, rather than a hassle.
The best way to learn is by example. It really isn't enough just to look at it and say "Uh huh, yeah." Take some time to take it apart and rewrite the code yourself. Trial and error is always a good way of learning. It seems we learn more by our mistakes, this is also true for programming. Yes, you'll have many nights of frustration when your code just doesn't seem to run properly, but once that bug is found, you'll be dancing around like there's no tomorrow.
There is still a large community of contributors to the Rapid-Q language. However, you are "on your own" with Rapid-Q. You too can contribute to the development of the language and keep this Free, simple and easy-to-use compiler alive.

QChartist uses the RapidQ language and compiler.


Scilab
 Previous Top Next
Scilab is an open source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling, simulation of explicit and implicit dynamical systems and (if the corresponding toolbox is installed) symbolic manipulations.

Scilab is one of the two major open-source alternatives to MATLAB, the other one being GNU Octave. Scilab is similar enough to MATLAB that some book authors (who use it) argue that it is easy to transfer skills between the two systems. Scilab however puts less emphasis on (bidirectional) syntactic compatibility with MATLAB than Octave does.

QChartist can benefit of the power of the Scilab API through C++ dll calls.
Scilab is used in QChartist for example to draw a conic from five points.
See the source file c:\qchartist\includes\scilab.cpp to understand how it works. You can find tutorials for Scilab in c:\qchartist\docs\scilab\


build.txt
 Previous Top Next
This file contains the number of the current build (version) of QChartist.
If you experience problems with the current distribution or your distribution is corrupted, you can edit this file and put "150" and save ; then run the update.exe
Then run QTStart.bat to recompile the program.
(Save your QChartist.ini file first)


curl
 Previous Top Next
curl.exe is used to download historical data from various sources including Yahoo Finance, Tiingo, Stooq or AlphaVantage

Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a, --append Append to target file when uploading (F/SFTP)
--basic Use HTTP Basic Authentication (H)
--cacert FILE CA certificate to verify peer against (SSL)
--capath DIR CA directory to verify peer against (SSL)
-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
--cert-status Verify the status of the server certificate (SSL)
--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
--ciphers LIST SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip)
-K, --config FILE Read config from FILE
--connect-timeout SECONDS Maximum time allowed for connection
-C, --continue-at OFFSET Resumed transfer OFFSET
-b, --cookie STRING/FILE Read cookies from STRING/FILE (H)
-c, --cookie-jar FILE Write cookies to FILE after operation (H)
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
--crlfile FILE Get a CRL list in PEM format from the given file
-d, --data DATA HTTP POST data (H)
--data-raw DATA HTTP POST data, '@' allowed (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
--dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2
--dns-interface Interface to use for DNS requests
--dns-ipv4-addr IPv4 address to use for DNS requests, dot notation
--dns-ipv6-addr IPv6 address to use for DNS requests, dot notation
-D, --dump-header FILE Write the headers to FILE
--egd-file FILE EGD socket path for random data (SSL)
--engine ENGINE Crypto engine (use "--engine list" for list) (SSL)
-f, --fail Fail silently (no output at all) on HTTP errors (H)
--false-start Enable TLS False Start.
-F, --form CONTENT Specify HTTP multipart POST data (H)
--form-string STRING Specify HTTP multipart POST data (H)
--ftp-account DATA Account data string (F)
--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-P, --ftp-port ADR Use PORT with given address instead of PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-pret Send PRET before PASV (for drftpd) (F)
--ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer (F)
-G, --get Send the -d data with a HTTP GET (H)
-g, --globoff Disable URL sequences and ranges using {} and []
-H, --header LINE Pass custom header LINE to server (H)
-I, --head Show document info only
-h, --help This help text
--hostpubmd5 MD5 Hex-encoded MD5 string of the host public key. (SSH)
-0, --http1.0 Use HTTP 1.0 (H)
--http1.1 Use HTTP 1.1 (H)
--http2 Use HTTP 2 (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i, --include Include protocol headers in the output (H/F)
-k, --insecure Allow connections to SSL sites without certs (H)
--interface INTERFACE Use network INTERFACE (or address)
-4, --ipv4 Resolve name to IPv4 address
-6, --ipv6 Resolve name to IPv6 address
-j, --junk-session-cookies Ignore session cookies read from file (H)
--keepalive-time SECONDS Wait SECONDS between keepalive probes
--key KEY Private key file name (SSL/SSH)
--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
--krb LEVEL Enable Kerberos with security LEVEL (F)
--libcurl FILE Dump libcurl equivalent code of this command line
--limit-rate RATE Limit transfer speed to RATE
-l, --list-only List only mode (F/POP3)
--local-port RANGE Force use of RANGE for local port numbers
-L, --location Follow redirects (H)
--location-trusted Like '--location', and send auth to other hosts (H)
--login-options OPTIONS Server login options (IMAP, POP3, SMTP)
-M, --manual Display the full manual
--mail-from FROM Mail from this address (SMTP)
--mail-rcpt TO Mail to this/these addresses (SMTP)
--mail-auth AUTH Originator address of the original email (SMTP)
--max-filesize BYTES Maximum file size to download (H/F)
--max-redirs NUM Maximum number of redirects allowed (H)
-m, --max-time SECONDS Maximum time allowed for the transfer
--metalink Process given URLs as metalink XML file
--negotiate Use HTTP Negotiate (SPNEGO) authentication (H)
-n, --netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
--netrc-file FILE Specify FILE for netrc
-:, --next Allows the following URL to use a separate set of options
--no-alpn Disable the ALPN TLS extension (H)
-N, --no-buffer Disable buffering of the output stream
--no-keepalive Disable keepalive use on the connection
--no-npn Disable the NPN TLS extension (H)
--no-sessionid Disable SSL session-ID reusing (SSL)
--noproxy List of hosts which do not use proxy
--ntlm Use HTTP NTLM authentication (H)
--oauth2-bearer TOKEN OAuth 2 Bearer Token (IMAP, POP3, SMTP)
-o, --output FILE Write to FILE instead of stdout
--pass PASS Pass phrase for the private key (SSL/SSH)
--path-as-is Do not squash .. sequences in URL path
--pinnedpubkey FILE/HASHES Public key to verify peer against (SSL)
--post301 Do not switch to GET after following a 301 redirect (H)
--post302 Do not switch to GET after following a 302 redirect (H)
--post303 Do not switch to GET after following a 303 redirect (H)
-#, --progress-bar Display transfer progress as a progress bar
--proto PROTOCOLS Enable/disable PROTOCOLS
--proto-default PROTOCOL Use PROTOCOL for any URL missing a scheme
--proto-redir PROTOCOLS Enable/disable PROTOCOLS on redirect
-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
--proxy-service-name NAME SPNEGO proxy service name
--service-name NAME SPNEGO service name
-U, --proxy-user USER[:PASSWORD] Proxy user and password
--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
--pubkey KEY Public key file name (SSH)
-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)
--random-file FILE File for reading random data from (SSL)
-r, --range RANGE Retrieve only the bytes within RANGE
--raw Do HTTP "raw"; no transfer decoding (H)
-e, --referer Referer URL (H)
-J, --remote-header-name Use the header-provided filename (H)
-O, --remote-name Write output to a file named as the remote file
--remote-name-all Use the remote file name for all URLs
-R, --remote-time Set the remote file's time on the local output
-X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
--retry NUM Retry request NUM times if transient problems occur
--retry-delay SECONDS Wait SECONDS between retries
--retry-max-time SECONDS Retry only within this period
--sasl-ir Enable initial response in SASL authentication
-S, --show-error Show error. With -s, make curl show errors when they occur
-s, --silent Silent mode (don't output anything)
--socks4 HOST[:PORT] SOCKS4 proxy on given host + port
--socks4a HOST[:PORT] SOCKS4a proxy on given host + port
--socks5 HOST[:PORT] SOCKS5 proxy on given host + port
--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy
--socks5-gssapi-service NAME SOCKS5 proxy service name for GSS-API
--socks5-gssapi-nec Compatibility with NEC SOCKS5 server
-Y, --speed-limit RATE Stop transfers below RATE for 'speed-time' secs
-y, --speed-time SECONDS Trigger 'speed-limit' abort after SECONDS (default: 30)
--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)
--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2 Use SSLv2 (SSL)
-3, --sslv3 Use SSLv3 (SSL)
--ssl-allow-beast Allow security flaw to improve interop (SSL)
--ssl-no-revoke Disable cert revocation checks (WinSSL)
--stderr FILE Where to redirect stderr (use "-" for stdout)
--tcp-nodelay Use the TCP_NODELAY option
-t, --telnet-option OPT=VAL Set telnet option
--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
-z, --time-cond TIME Transfer based on a time condition
-1, --tlsv1 Use >= TLSv1 (SSL)
--tlsv1.0 Use TLSv1.0 (SSL)
--tlsv1.1 Use TLSv1.1 (SSL)
--tlsv1.2 Use TLSv1.2 (SSL)
--trace FILE Write a debug trace to FILE
--trace-ascii FILE Like --trace, but without hex output
--trace-time Add time stamps to trace/verbose output
--tr-encoding Request compressed transfer encoding (H)
-T, --upload-file FILE Transfer FILE to destination
--url URL URL to work with
-B, --use-ascii Use ASCII/text transfer
-u, --user USER[:PASSWORD] Server user and password
--tlsuser USER TLS username
--tlspassword STRING TLS password
--tlsauthtype STRING TLS authentication type (default: SRP)
--unix-socket FILE Connect through this Unix domain socket
-A, --user-agent STRING Send User-Agent STRING to server (H)
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
-w, --write-out FORMAT Use output FORMAT after completion
--xattr Store metadata in extended file attributes
-q Disable .curlrc (must be first parameter)


getos
 Previous Top Next
getos prints your OS Windows version or Wine if you are under Linux
It uses QGetOSVersion.inc in the includes folder


JFE
 Previous Top Next
Jens' File Editor -The Ultimate Editor for programmers
Very much thanks to L. and A. Oppenheim at School of IT, Swinburne University, Australia for the work of translating from German to English.

JFE was always quite usable. Without any documentation however, it was commonly found that it was not possible to make use of the inexhaustible possibilities provided by the editor. Now finally a remedy is at hand. However, only the important things which differentiate this editor from others will be described.
The current version here V3.81 To Jens' Home page

Editing Blocks
Colour Management
Syntax Highlighting
Printing
Search Functions
Bookmarks
Special Settings
Tool Menu
Autobrowser
Special Operations
HTML Project file
A typical template for an HTML project
Work areas (Projects)
The Context Menu
Macros
Function keys
Other


QTStart
 Previous Top Next
QTStart.bat is used to recompile the whole program.
Useful after using update.exe or after making code modifications


QTIndex
 Previous Top Next
QTIndex is used to index indicators's files in folder indicators with extensions qti qtp and settings
It also concatenate files in order to make the custom indicators working.
It creates files in the includes directory:
includeqti.inc
includeqtp.inc
includeset.inc
includebtnonclick.inc with the part1 2 and 3


QChartist.Exe
 Previous Top Next
Use QChartist.exe to start the main program.
This is the open source technical analysis software.
It must be installed on the C: drive in C:\QChartist

Configuration required:
QChartist works under many configs:
- Windows 7 familial 64 bit with an Intel Celeron 2.66 GHz CPU with 2 Go RAM and works properly.
- Windows XP home SP2 with an Intel Celeron 2.66 GHz CPU with 1 Go RAM and works properly.
- Ubuntu 8.04.1 under Wine with an Intel Atom 1.6 GHz CPU with 1 Go RAM and works properly.
- Ubuntu 12.04 under Wine with an Intel Atom 1.6 GHz CPU with 1 Go RAM and works properly.
It should also work under Windows 9x,NT,2000,Me,Vista,7
It should also work under other Linux distributions with Wine

QChartist copyright (c) 2010-2021 Julien Moog
Contact email: julien.moog@laposte.net
Website: http://www.qchartist.net

QChartist is a free GPL software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or any later version.

QChartist is a free charting software designed to do technical analysis from any data.
The program is written in Basic and C++ language.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
this program; if not, one can be obtained from
Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.

LIMITED WARRANTY:
The publisher provides this free program ; it is the user's
responsibility to determine if the program provides acceptable performance
for their needs. If the user uses the program then it is agreed by
the user that the program is useful for him and no warranty is made by
the publisher on future performance of the program.

NO LIABILITY FOR DAMAGES:
The publisher will in no way be liable for any damages caused by installing and
running the program. Installation and usage of the program represents your agreement to
this limitation of liability. If your state does not allow this type of liability limit or
you do not agree to this liability limit do not install the program on your
computer.

INVESTMENT RISK:
Investing money involves great risk of loss. The program is intended for
didactic and/or research purposes only. The end user of the program is solely responsible
for any action he or she may take in the financial markets.

IMPORTANT: i just ask that you respect the following things when you use my software:
- to keep my name,email,urls intact everywhere i did mention it in the software files.
- if you use portions of my source files in your project, i ask that you mention my name and my email in your project (somewhere visible to the final user)
- to share your source files with me when you improve the software
- to share your derivated work with me

What can i do with QChartist?

Revision after revision, QT allows more and more functionalities. It is really a flexible software with extensive
functionalities.

- You can open multiple charts at the same time. (Click on Import CSV or menu File>Import CSV)
- You can switch from one to another. (Click on Display chart box)
- You can close each of your opened charts separatly. (Click on the red cross in the upper right corner of your chart)
- You can scroll your charts backwards or forwards. (Click on the scrollbar bellow your chart)
- You can choose how many bars to display on screen. (Click on Display +- bars or enter a number of bars in the box and click OK)
- You can set the space you want in front of your charts. (Click on space forwards box, enter a number of pixels and click OK)
- You can change the timeframe multiplier:
for example if you open a H1 chart, and if you change the timeframe multiplier to 2, you will have a H2 chart displayed on the screen
- You can draw geometrical figures:
- trendline
- Fibonacci fan
- Fibonacci retracements
- horizontal line
- vertical line
- square
- equilateral triangle
- circle
- cross
- inverted circle
- text
- Andrews pitchforks
- Cycle lines
- Log/Exp curves
- Price/Time extensions
- sinusoids
- And many many more

- You can see x,y coordinates (pixels,price,date), angle, length (pixels) of your geometrical figures (Windows menu>Tools informations)

- You can put indicators on your charts (Click on Indicators):
- Simple Moving Average
- Bollinger Bands
- Vegas Channel
- BB - HL
- ATR Channel
- Average Range
- Center Of Gravity
- And many many more

- You can put indicators on the separate canvas (Click on Indicators):
- Close Price
- Money Flow Index
- Average True Range
- Value Chart
- Relative Strength Index
- And many many more
You need to click on menu Windows > Canvas in order to show the separate canvas

- You can change the indicators settings
- You can change the counted bars for your indicators (Click on the box and enter a number of bars)
- You can make charts additions or subtractions (Click on Mixer)
- You can save your charts as BMP files (Click on Save)
- You can export charts as CSV files (Click on Export CSV)
- You can print your charts (Click on Print)
- You can change the axis type to normal,logarithmic
- You can change the chart type to candlesticks,line,point,polar,...
- You can use custom timeframes

- And many many more...

- You can create your own experts which will analyse your charts automatically and alert you for a signal
(this is done with the use of QTGuard and some csv files gathered in the same folder (you need to specify the csv path
first in QT menu file>settings where QT will pick charts from))

Source code of QC is fully included for multiple reasons :
- portions of code written under the GPL license belong to their respective authors
- this will allow many programmers to contribute to the project and to improve it strongly
- in order to include new indicators in the program, the entire source code must be recompiled
Since QC is delivered with its entire source code, compiler, programming guide, and IDLE, it is easy
and rapid to extend its possibilities, even for novice programmers (Basic language).

Currently the software cannot use realtime quotes, which means that you can only import historical data from
local files or Yahoo Finance. Maybe the use of realtime quotes will be available in a future release.

How to open a chart?

You just need to have a .csv file correctly formatted in order to do so.

CSV file format must be like this:

date (YYYY.MM.DD),time (HH:MM),open,high,low,close,volume

QChartist uses the same csv format as in the MetaTrader 4 history center

For example, your CSV file must begin with something like:

2010.01.29,00:00,1.05242,1.05467,1.05054,1.05215,17030

You can check this with Notepad.
All fields must be present. If you don't use time in your file (for daily or more), you need to have a time column with 00:00
for all rows in your file.

You can change the order of each column and the separator character can be a coma (,) or anything else. When your click on
import CSV in QChartist, your can enter the position of each column in your CSV and the separator character.
Position 1 is the first column in your file. After that, click on open file and choose your file.
In order to format your files correctly, you can use your usual office suite to do this.
You must not use " " delimiters in your CSV file.


QTGen
QTGen is a small executable intended to facilitate indicators creation. It creates all the necessary files, with the minimal code needed for the new indicator you want to create. Once your indicator is created with QTGen, you just need to open the files created in the indictors directory with notepad and edit the code.
For more details, see How to create a new indicator


QCKill
 Previous Top Next
QCKill is used to terminate the QChartist.Exe program
- runtime error 216 on application close bypassed thanks to qckill.exe


QTGuard
QTGuard is a small program intended to supervise QChartist when it works under "auto-pilot" mode (automated analysis or expert advisor mode). Its role is to detect when QChartist freezes, crashs, and/or doesn't respond any longer. If QChartist crashs, QTGuard will kill its process and restart the program the way the "auto-pilot" can continue its job.

- QTGuard permits to emit sound alert if QChartist crashs or run
How the guard works?
QChartist saves current timestamp into alive.log at regular intervals
When you start the timer:
QTGuard reads alive.log periodically and compares its value to the current timestamp
If the gap is too important, QTGuard kills QChartist and restart it and emits sound

See readme.txt in the docs folder for more info

pkill and QCKill
pkill is a Linux command to kill process by its name
QCKill is a Windows command to kill QChartist.Exe

For Linux Wine users:
In order to know if you have to use pkill or QCKill method in QTGuard,
Choose "Use pkill (method 1) first"
Click on "start timer" and click on "start expert"
wait a few seconds, QChartist will start automatically and begin to scan tickers
In QChartist click on the "Stop" button in the top right corner
Wait 1 or 2 minutes, QTGuard will try to kill QChartist and restart it (with pkill method 1)
If QTGuard does not manage to kill QChartist before restarting
In QTGuard, click on "stop timer" and "stop expert"
Close QChartist manually
Try the "Use QCKill (method 2) in QTGuard GUI
Click on "start timer" and click on "start expert"
wait a few seconds, QChartist will start automatically and begin to scan tickers
In QChartist click on the "Stop" button in the top right corner
Wait 1 or 2 minutes, QTGuard will try to kill QChartist and restart it (with QCKill method 2)

Under Windows, pkill method 1 or QCKill method 2 is the same and it doesn't matter whatever you use method 1 or 2


RC
 Previous Top Next
RC is the RapidQ compiler


senditquiet
 Previous Top Next
---------------------
PARAMETERS:
-s <server> : SMTP server address (required)
-port <port> : SMTP server port (Default is 25)
-u <username> : SMTP user name (reqired)
-p <password> : SMTP password (required)
-f <from> : Sender mail address (required)
-t <to> : Comma seperated recipient list (reqired)
-protocol <protocol> : SMTP protocol possible values are, ssl, normal.
-subject <subject> : subject line, surround with quotes if you want to include spaces
-body <body> : Mail body. Surround with quotes if you want to include spaces
-bodyfile <filename> :file path contains message body, file encoding assumed as utf8
-files <files> : Attachment files, (comma seperated).
-logfile <filename> : Optionaly you can specify a log file to have detailed trace of whole communication process.

Usage example:

senditquiet.exe -s smtp.myserver.com -u mysmtpusername -p mypassword -f mymailaddress@myserver.com -t firstrecipient@address.com;secondrecipient@address.com -protocol ssl -subject "A mail subject" -files afile.zip;anotherfile.rar

Visit http://commandlinesendmail.blogspot.com/ for more information and examples.


sendmailKill
 Previous Top Next
When you use the scanner launched by QTGuard.Exe, it is used to kill the sendmail.Exe file when it sends signals to your email address


timestamp_2038_test_double.Exe
 Previous Top Next
QChartist is ready for 2038 ! Date and time algorithms adapted.
Data source is ready for 2038

What will happen to 32-bit systems in 2038?
The 2038 problem refers to the time encoding error that will occur in the year 2038 in 32-bit systems. This may cause havoc in machines and services that use time to encode instructions and licenses. The effects will primarily be seen in devices that are not connected to the internet.

What will happen to timestamp after 2038?
Consequently, if a signed 32-bit integer is used to store Unix time, the latest time that can be stored is 231 - 1 (2,147,483,647) seconds after epoch, which is 03:14:07 on Tuesday, 19 January 2038. ... From here, systems will continue to count up, towards zero, and then up through the positive integers again.

Why is 2038 a problem?
If you have read How Bits and Bytes Work, you know that a signed 4-byte integer has a maximum value of 2,147,483,647, and this is where the Year 2038 problem comes from. The maximum value of time before it rolls over to a negative (and invalid) value is 2,147,483,647, which translates into January 19, 2038.

QChartist uses double variables to store timestamps

What is a double variable in Visual and RQ Basic?
A Double is 8 bytes. It is a value type. It stores numeric values that have a decimal place. It stores extremely small and extremely large numbers. Doubles are often used in VB.NET programs that also use the Math type.

For example:

long 8 bytes or (4bytes for 32 bit OS) -9223372036854775808 to 9223372036854775807
unsigned long 8 bytes 0 to 18446744073709551615

Consequently, if a signed 32-bit integer is used to store Unix time, the latest time that can be stored is 2^31 - 1 (2,147,483,647) seconds after epoch, which is 03:14:07 on Tuesday, 19 January 2038.


update.exe
 Previous Top
- you can check for updates with an internet connection
- QChartist can download and install updates automatically (disabled by default)
- After you made an upgrade with update.exe ; to avoid bugs, it is strongly advised that you recompile it with QTStart.bat (Close the app first).


- you can check for updates with an internet connection
- QChartist can download and install updates automatically (disabled by default)
- After you made an upgrade with update.exe ; to avoid bugs, it is strongly advised that you recompile it with QTStart.bat (Close the app first).