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)
프로젝트
395
28%
중재
69
19% / 49%
기한 초과
120
30%
무료
2
개발자 2
등급
(48)
프로젝트
80
28%
중재
8
75% / 13%
기한 초과
41
51%
무료
3
개발자 3
등급
(5)
프로젝트
6
17%
중재
2
0% / 50%
기한 초과
0
무료
4
개발자 4
등급
(49)
프로젝트
134
27%
중재
62
13% / 53%
기한 초과
58
43%
무료
비슷한 주문
"I'm seeking a skilled developer to collaborate on bringing my custom NT8 strategy to life. Your expertise will play a pivotal role in ensuring the success of this project. Are you open to joining forces for a mutually beneficial partnership? Let's connect and delve into the specifics together. Thank you!"
Hey greetings to you all. I need an expert Metatrader 5 developer that have successfully developed a profitable Mt5 EA I can buy with high win rate . Kindly bid if you have one with backtesting results prove and let discuss about the price . Thanks
I am looking for a coder to code my custom Ninjatrader 8. your experise is needed in this project, let's connect to execute the project. you can kindly contact me and let start the project without any further delay much appreciation
"I'm looking for a talented developer to help implement my custom NT8 strategy. Your expertise is key to the project's success. Are you interested in teaming up for a productive partnership? Let's discuss the details together. Thank you!"
"I'm on the lookout for a proficient developer to help actualize my tailored NT8 strategy. Your mastery in this field is pivotal for the project's success. Would you be open to partnering for a mutually beneficial collaboration? Let's explore the details together. Thank you for considering!"
I am in search of a skilled MQL5 developer with a proven ability to optimize trading robots across various assets, including synthetic indices like V75, Boom and Crash, gold, US30, US100, and more. I'm looking for an experienced developer to enhance my multi-asset trading EA, which was originally developed exclusively for V75 and is based on the smart money concept. The developer must be free in taking up the job
Objective: To Create an EA based on an EMA cross Strategy that utilizes martingale account management strategy with multiple profiles to better manage risk and scale safely Strategy Concept: This strategy was created around Volatility Index 75 on the 5 minute chart. It was Observed that this Index tends to frequently form very strong trends with short periods of consolidation. On applying a 10 period
i want close on reserve signal, auto lots, time fiter , TP SL TS ETC. I GET PAID ON THE 12TH, SO I WOULD LIKE A DEMO UNTIL 12/05/24 TO TEST IM WILL TOO PAY 60 USD FOR THE LONG WAIT
I Want a bot that will work for my tradingview strategy and also works perfectly, Kindly reach out to me so I can explain the project more further and get started without any further delay
Hello .I have existing Tradingview strategy that I will like to automate to Mt4 EA based on my specification . I need an expert in the field that have experience in both tradingview and MT4

프로젝트 정보

예산
100 - 300 USD
개발자에게
90 - 270 USD
기한
에서 4  7 일