A Modified TMI Indicator

작업 종료됨

실행 시간 28 일

명시

This is a modification to the Triangular Moving Average non-repainting Indicator (provided as attached MQ4 file). The attached EXE file gives you some idea as to some of the design modification I need done to this indicator. The attached images are of the same images used in this job description just in case they are hard to read. This job is for the MQ4 code and not just the compiled exe file and is part one of a big project. 

1)      This Indicator will mainly be running on Renko charts.  All examples shown are on Renko charts.

2)      5 TMI settings, each with different colors instead of one (see EXE file as an example). The default settings for the variables values are as follows:

1)      TMA1: ATR Multiplier1, Half Length 1, ATR Period 1 = 1.5,19,70,

2)      TMA 2: ATR Multiplier2, Half Length 2, ATR Period 2 = 2.5,60,120

3)      TMA3: ATR Multiplier3, Half Length 3, ATR Period 3 = 3.0,60,120

4)      TMA4: ATR Multiplier4, Half Length 4, ATR Period 4 = 3.5,60,120

5)      TMA5: ATR Multiplier5, Half Length 5, ATR Period 5 = 4.0,60,120

6)      ColorTMABands1 = Yellow, TMABands2= DodgeBlue, ColorTMABands3= Green, ColorTMABands4= Magenta ColorTMABands5=Black

7)      TMABreakoutLevel 1: Yes/No, Default “No”, TMABreakoutLevel 2: Yes/No, Default “No”, TMABreakoutLevel 3: Yes/No, Default “No”, TMABreakoutLevel 4: Yes/No, Default “No”, TMABreakout Level 5: Yes/No, Default “Yes”

8)       MaxBars: Default 10,000

9)      EnableAlerts: Yes/No Default No

3)      When a Bullish bar breaks above a breakout level, the indicator will show an “X”, indicating a potential downward reversal. In Renko chart, this coincides with when the Renko blocks reverse position once it has crossed a particular TMI band. This program needs to mark the change in direction of the candles and rejection of the upward or downward moves after the candle closed above the TMI bands and mark each rejection candle with a different color “X”. For the purpose of this illustration, I will refer to those “X”s as“Bullets”. I do not know if you need a variable assigned for the size of the Renko Blocks I use, but if you do, my default is value is 5 pips blocks, but I do change that size on occasion. Here are the values for other variables used in this indicator:

1)      ColorCandleReversal1 = Yellow, ColorCandleReversal2= DodgeBlue, ColorCandleReversal3= Green, ColorCandleReversal4= Magenta ColorCandleReversal5=Black

4)      Generally speaking, this program needs to be able to filter out Bullets and only show the bullets in groups that meet my filtering criteria ( Bullets are considered to be in a the same group when several bullets are in a row and the price candles between those bullets hasn’t broken and closed past the opposing TMA2 line (TMI2 has a DodgeBlue color by default) See examples Below:

5)But before we get to the filters, wed need to incorporate a way of counting the number of Waves (from Elliot Wave Theory) the uptrend and downtrend moves as well as the ranging moves are producing. For this portion of the indicator, I will be referring to the following abbreviations for Higher High and Higher Low and Lower High and Lower Low:


1

     

The rules that must always hold for the pattern above to be valid are:

HH1>HH0 and HL1<HH1 and HL1>= HH0. The remaining HH and HL and LL and LH rules can be deduced from this rule as per the images above. (From programing aspect, in order to distinguish the correct waves (HH and LL, etc) , I’d suggest using a three candle based Fractal code to point out ALL of the three candle based highs and lows in the price movement and then filter out the ones that don’t meet with the rules above.  This will be further explained below.

Now How do we distinguish trending vs ranging moves and Uptrend vs downtrend:

An uptrend move is a move where HH3 or HH4 or LL3 or LL4 close above the last TMI band (TMI5). When this happens on the upper TMI for example, multiple upper TMI5 crossings in a group is expected before the price crosses the lower TMI and trend reverses or becomes ranging.

Example:


In a ranging move, HH3 or HH4 or LL3 or LL4 do not reach TMI5 and at most will reach TMI4 at best. This will result in a ranging bullets of the lower grade TMI (ie TMI 2, TMI3, TMII4) from Upper to Lower TMI and back from Lower to Upper TMI with Single bullets separated by crossing of the opposing TMI2:


How to correctly assign the waves to trending moves: I am going to show you step by step how the program needs to number the waves in an uptrend such as this one:


In order to establish where HL0 is, we wait for the price to cross low TMI2. We go back X number of candles (Default X = 20), find the lowest Fractal within the 20 candles and call that Hl0. Then from there, we start counting HH1 that meets with the rules we set out above, HL1, etc Until we get to HH3 or HH4 that has broken through the TMI upper.  If HH3 or HH4 has crossed Upper TMI 5, we expect an uptrend and a group of bullets on the upper TMI band to show up, so we continue the HH count upwards:

Note that anytime any HL goes below the previous HL, waves need to be renumbered to continue to follow the uptrend rules as is seen below

When the price finally crosses the lower TMI2 line (Blue), the last move between the upper TMI and lower TMI needs to be repainted as a downtrend and the previous uptrend move repainted as seen below:

In the last downtrend move, if LL3 or LL4 end up below the lower TMI5 band, that will be considered to be a Down trend. And if it doesn’t cross TMI5, it will be a Ranging move. How to correctly count the wave in a ranging move:

Anytime an HH4 or LL4 is has crossed TMI2 through TMI 4 4 but not 5, we consider that a ranging move. The first bullet is HL0 or LL0 and we start counting up or down in the opposite direction of the TMI band all the waves after that:



Now back to the filters: in the first filters, we will only pick the series of bullets in sequence or group (Trending move) (bullets are considered to be in a group when there is no crossing of the opposing TMI2 band in between the bullets). To understand the filters, we will need to refer to number the bullets in group as follows:

1)      Variables: ShowInGroupsof3: Yes/No Default Yes

2)      Variables: ShowInGroupsof4: Yes/No Default Yes

3)      Variable:  ShowInGroupsof5: Yes/No Default Yes (When this option is chosen, one crossing of the opposing TMI2 band is allowed, but it has to be between bullets #3 and #4)

4)      Variable: ShowAlternating: Yes/No/Default No, This option only shows ranging prices when the price alternatingly breaks the opposing TMI2 on the 3rd or 4th HH  LL. (Whichever number, 3rd or 4th wave which is in the chosen threshold first) See example below for clarification.

Alternating


6)      When Price Moves from One TMI to the opposite TMI Without creating a wave (no HH or LL) in between, consider that move to qualify for all 4 waves (ie all HH1, HL1, HH2, HL2, HH3, HL3, HH4 are all within the straight move). See Example:


7)      In a chosen Group of bullets (When ShowInGroupsof: 3,4,or 5 picked), If there are multiple  clusters of Bullets within the same threshold, then need option to only chose one from each cluster based on HH, HL, LH,LL

1)      Vaiable: FilterHHHL: YES/No Default: Yes

2)      Variable: HHHLThreshold: Group2/Group3/Group4/Group5/Group3+Group2; Default Group3+Group2

HHHLThreshold=Group 2 allows to sort out Bullet 1 and Bullet 2 based on HH, LL positions.

HHHLThreshold=Group 3 allows to sort out Bullet 1 thru 3 based on HH, LL positions. And so on and so forth

HHHLThreshold=Group 3+Group2: This Option can only be applied when ShowInGroupsof= 5 is picked.  It allows for the HHLL filter to only be applied to the first 3 bullets independent of the last two bullets (ie, in an upward move, Bullet 3 is above Bullet 2 which is above Bullet 1 and Bullet 5 is above Bullet 4.  But Bullet 4 can be both below or above bullet 3. See example below.  

·   Example of what the filter should do: When FilterHHHL = No, and TMABreakout Level 5 is “Yes”:

            

·   When FilterHHHL = YES, and TMABreakout Level 5 is “Yes”: HHHLThreshold:Group5

·   When ShowInGroupsof: 3, FilterHHHL = YES, and TMABreakout Level 5 and 4 is “Yes”, and HHHLThreshold:Group2 (HH and HL is only applied to the first two bullets)

·   In the previous example, if HHHLThreshold: Group3 (all bullets are taken out cause the third bullet has a lower HH than the second one and ShowInGroupsof: 3, only shows groups of three bullets.

·   In this last example, HHHLThreshold:Group3+Group2 and ShowinGroup5=yes

8)      When Groups of bullets chosen (When ShowInGroupsof:  >1), I’d like to have the option to

Toggle off and on the distance in points between each bullet and the TMI2 (Blue) band and the % of the distance as compared to the chosen Bullet number within the group of bullets and the speed of the movement as defined below. If possible, I’d like that option to be present on the chart with a button so that I don’t have to go back to the variables sets and change the value there.

1)      Variable: ShowBulletStats YES/NO, Defalult No

If ShowInGroupsof3 = Yes OR ShowInGroupsof4 = Yes

Write distance in % in comparison to bullet # G3-4ReferenceBullet

2)      G3-4ReferenceBullet: Bullet1/Bullet2/Bullet3 Default Bullet2

If ShowInGroupsof5 = Yes Show distance in % in comparison to bullet # G5ReferenceBullet

3)      G5ReferenceBullet: Bullet1/Bullet2/Bullet3/Bullet4/Combo2+4 Default Combo2+4

When G5ReferenceBullet=Combo2+4, the first 3 bullets distances are written as a percentage of bullet #2 distance and #4 and $3 are written as percentage of Bullet 4 distance. See below example.


 

9)      Along with the distance above, I’d like to be able to show the speed of the movement between the bullets right after the distance. Speed = Distance divided by number of candles between the two bullets. I’m interested in speed between Bullets 2 and 1, 3 and 2, 4 and 3, 5 and 4 and last 5 and 3

1)      ShowSpeed: Yes/No Default Yes  See Example:


10)      Filters for groups:

1)      FilterD3% = Yes/No, Default No, D%Value: real Number, Default 115%

·   Only shows groups of 3, 4 or 5 bullets where D3% is >D%Value% 

2)      FilterD5% = Yes/No, Same D% Value as D%Value is used for filtering

·   Only shows groups of 5 bullets where D5% is >D%Value

3)      SpeedCutOff : real Number, Default 20

4)      Speed(3-2) >SpeedCutOff YES/No, Default No

5)      SpeedDecelRatio: Real Number, default 5

6)      Speed(4-3)<Speed(3-2) YES/NO Default No (Only when ShowInGroupsof= 4)

7)      Speed(3-2)/Speed(4-3)<SpeedDecelRatio Yes/NO Default No (Only when ShowInGroupsof= 4)

8)      Speed(5-3)>SpeedCutoff Yes/NO Default No

9)      Speed(3-2)/Speed(5-3)<SpeedDecelRatio Yes/NO Default No (Only when ShowInGroupsof= 5)

10)   Speed(5-4)>SpeedCutOff YES/NO Default No (Only when ShowInGroupsof= 5)

Filter Distance between Bullet Points:

11)   FilterMinBulletDistance YES/NO, Default No

12)   MinBulletDistance: Real Number, default 20 points

When FilterMinBulletsDist=YES, D(2-1) and D(3-2) both need to be greater than MinBulletDistance (Please note that D(3-2) is distance between two bullets and not between Bullets and TMI2 line)


응답함

1
개발자 1
등급
(258)
프로젝트
396
28%
중재
70
19% / 49%
기한 초과
121
31%
무료
2
개발자 2
등급
(55)
프로젝트
92
24%
중재
8
75% / 13%
기한 초과
44
48%
무료
3
개발자 3
등급
(5)
프로젝트
6
17%
중재
2
0% / 50%
기한 초과
0
무료
4
개발자 4
등급
(49)
프로젝트
134
27%
중재
62
13% / 53%
기한 초과
58
43%
무료
게재됨: 353 기고글, 1 코드
비슷한 주문
I currently use nt8 trading platform. I trade with kelterband channel indicator and 80sma. Would like a custom indicator added to chart trader to get into trade manually when band crosses sma, 3 separate buttons for buy sell close of yellow band, mid band (blue) and 80 sma (purple). also need contract size button and tick offset button. when i enter a trade i want it to trail the band until price hits it and gets me
Hello lovies, I’m reaching out because I’m working on a specialized macroeconomic intelligence service focused on major economic releases and their potential impact on gold (XAUUSD), the US dollar, and the wider financial markets. My approach goes beyond simply following the economic calendar. I focus on understanding the information behind upcoming events, market expectations, and the potential implications for
MT5 Expert Advisor Development Brief — Forex Project objective I am looking for an experienced MQL5 developer to build a bespoke, fully automated Expert Advisor for MetaTrader 5. The EA will be used on both proprietary trading firm (prop-firm) accounts and my own live trading account. My priorities, in order, are: 1. Low drawdown and robust risk management. 2. Consistent, repeatable profitability. 3. Reliable
Platform: MT5 only (no MT4 needed). Deliverable: an MT5 Expert Advisor with full source code (.mq5) that replicates the attached TradingView strategy (Pine Script v6, based on LuxAlgo's "ICT Killzones Toolkit" order blocks) as exactly as possible. Pasting the code into TradingView shows how it operates. I normally trade GBPUSD on the 5-minute chart Expected behavior: - Order block detection must match the Pine code
Requirements Specification: Debug & Error Fixing: Review the entire source code of the MQL expert advisor. Identify and fix all logical errors, bugs, and performance issues that cause trades to close prematurely or yield extremely low profits. Strategy Restructuring & Optimization: Fully analyze and optimize the current entry and exit strategy for USDJPY and GBPUSD. Modify, upgrade, or completely rewrite the entry
I am looking for a highly skilled trading strategist and MQL5 developer with genuine experience in researching, designing, testing, and implementing systematic trading strategies. My primary interest is XAUUSD (Gold), although proven experience with other financial markets is also welcome. I am not looking for someone who simply converts trading rules into code. I want to identify a professional who understands
MarketMind Breakout Pro XAUUSD H1 — Donchian Breakout EA Project type: Personal EA development and backtesting Platform: MetaTrader 5 Instrument: XAUUSD Timeframe: H1 Strategy: Donchian Channel breakout with EMA 200 Project overview This project evaluates a Donchian breakout trading strategy for XAUUSD on the H1 timeframe. The system uses channel-based breakout conditions and an EMA 200 trend filter. Historical
The purpose of this order is ONLY to test and implement my H1 POI (Point of Interest) identification logic correctly. I am not requesting the complete EA at this stage. I will provide the exact rules for identifying the H1 POI after selecting the developer. The developer must convert those rules into clear, deterministic MQL5 logic. Requirements: Analyze H1 candles according to the rules I provide. Identify and mark
Hello, I’m looking for an experienced developer to research, build, test, and install a fully automated MetaTrader 5 trading bot for gold, XAUUSD. My total development and installation budget is $300, including all agreed work and fees. My goal is to pass a $100,000 FTMO US Two-Step Standard evaluation and sustainably maintain the funded account. I need a day-trading strategy that can buy in bullish markets and sell
Hello International Developer, I need LIFETIME MT5 EA for XAUUSD Gold. REQUIREMENTS: 1. Lifetime bot - No expiry date, unlimited accounts, unlimited installations 2. Must include source code .mq5 file - This makes it lifetime 3. Every trade MUST have Stop Loss 300 points and Take Profit 600 points 4. No martingale, No grid, No averaging - Clean safe strategy 5. Auto lot size = 1% risk per trade for good margin growth

프로젝트 정보

예산
100 - 300 USD
기한
에서 4 로 7 일