Writing of an Expert Advisor based on EMA cross that utilizes a martingale

İş Gereklilikleri

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 EMA offset at 0 And a 10 Period EMA offset at 500 , it was observed          that there tends to be on average at least a 1,000,0000 point movement in price in  a single direction after 1 or a few crosses  of EMA lines.          After applying a martingale strategy that increases lot size on every 'x' points in cumulative losses per martingale run, the risk of ruin          returned positive figures. The system uses a mix of dynamic and fixed stop loses, take profits and trailing stops to mitigate loses and          maximize profit. These levels are based on the EMAs as well.

Targeted pairs/index/Commodities: Volatility Index 75 , others(build to be able to be tested on currency pairs though doesn't have to be effective with)

Parameters: 

EMA1_period ;   EMA2_period ; EMA1_offshift  ; EMA2_offshift ;  EMA1_Method ;  EMA2_Method ;  EMA1_Apply2 ;  EMA2_Apply2 ; fixedTakeProfit ;    fixedStopLoss ; floatingTakeProfit ;   floatingStopLoss ;  floatingStopLoss_Type; 

(martingale)

no_of_Steps ; initial_step_size ; continue_after_final_step ; continue_type ; multiply_on_loss_amount ; multiply_on_loss_rate_factor;

Specification:

     1.After User enters parameter and initializes the bot, an alert should be issued informing user of the dollar amount that would be at risk per  martingale cycle. this can be  calculated as:

       amount at risk per run =  (Initial Step Size *multiply_on_loss_amount )[1+ ( Σ n * (multiply_on_loss_rate_factor))]   where ,  1 < n   < = (no_of_Steps

                   Formula in text was assuming  1 unit  = 100     points

     2. If EMA1 is Lower than EMA2 then Open a sell position 

else

If EMA1 is higher than EMA2 then Open a buy position

    3. If EA opened position but EMA lines cross line in other direction, close position and open other opposing position type( close buy and open sell).

     4.  On loosing a specified number of points ; ( >=  multiply_on_loss_amount ), The following position should open with

lot size  = initial step size * multiply_on_loss_rate_factor * number of current step    

     5. If the Accumulated  loss for current run is equal to or exceeds the previously calculated amount at risk per run then the EA must alert the user and  either   stop the EA, continue the martingale run  or restart the martingale run. (The purpose of the  continue_after_final_step ; continue_type ;  parameters)

     6. On opening a position the stop levels would be according to the  fixedTakeProfit ;   fixedStopLoss parameters. As price moves away from he entry   point if  the user selects a value equal to or above zero (=> 0) for the  floatingStopLoss  a trailing stop would be applied using either of 2 methods.  

If   floatingStopLoss_Type   = continuous ; then a regular trailing stop with the specified number of point will be applied to price

                        If   floatingStopLoss_Type   =  jump ; then for each specified number of units/points change in price (non-absolute) the stop loss jumps to             that many points bellow or above current price (jumping again only after price went up or down by the           specified amount of units once

     7. The floating TP is equal to the EMA2 Line if Line value is greater than  fixedTakeProfit  for a buy position and less than the fixedTakeProfit for a sell    position. If floating stop is enabled it would be based on the maximum value for The floating Tp(maximum relative to direction of trade)

     8. The EA would not consider other trades made manually or by other EAs. 

     9. The EA should update the user via comment :

the current step number ; the current martingale run number (since initiating) ; the accumulated loss on current run; the next lot size          run continuation type.

 


As an example, take point 1 , EMA1( the turquoise line  set at offset = 0)  crosses EMA2 which is offset at 500. If the initial step size is 0.01 then a   sell position is opened with SL set at fixedStopLoss . In this case even if the user was using a floating stop loss it would automatically default  to the fixed stop loss as the distance between the EMA 2 line and EMA1 line is below the permitted stop loss level.

At point 2 though the previously opened sell position has not reached the Fixed stop loss and the floating stop loss was unable to activate, the  position is closed and a buy position is opened. If the multiply_on_loss_amount is exceeded for the current step of the martingale run then the  opening lot size for the buy order 

initial step size multiply_on_loss_factor  *( current step number).  (Assuming we index steps in martingale run  starting at 1) . 

        Additionally for point 2  lets consider the yellow rectangle. If the stop levels for the buy position opened at point  2 is represented by the long sides  of the rectangle then price would've reached the stop loss before the moment , on close, that the EMA1 would below the EMA 2. The trade would  close at the price marked by the triangle however the sell position would open at point three where the EMAs cross after the close

For Point 4 , the previous sell position would be closed and a buy position simultaneously opened at the crossing of the EMA lines. The floating Stop  Loss ,if selected as a value  => 0,  would begin at the EMA2 line and dependent on the  floatingStopLoss_Type selected would either trail behind price  for each point movement, jump between prices as current price increases every  floatingStopLoss  units  or be equal to EMA2 so long as that value is  less than the  fixedStopLoss

    

Notes:

Use points not pips as unit of price measurement though that may be simplified by rebasing for user input. Formula in text was assuming  1 unit  = 100      points

  This would be the first version of the EA. I plan to use the same developer to apply more features in the future. features would include panels, buttons ,     a partials mechanism with multiple TPs, reporting to a website ect.

  I am aware the current method of calculating the next lot size becomes inefficient really quickly would like to discuss if other more efficient models           not posted here 

 Use this set as the initial starting parameters:

EMA1_period  = 10 ;   EMA2_period = 10  ; EMA1_offshift = 0  ; EMA2_offshift =  500;  EMA1_Method = exponential;  EMA2_Method = exponential ;    EMA1_Apply2 = close ;  EMA2_Apply2 = close ; fixedTakeProfit = 10,000 ;    fixedStopLoss = 5,000 ; floatingTakeProfit = no ;   floatingStopLoss = 0 ;     floatingStopLoss_Type = jump; 

(martingale)

no_of_Steps = 3 ; initial_step_size =0.005 ; continue_after_final_step = yes ; continue_type = restart ; multiply_on_loss_amount = 5,000 ;  multiply_on_loss_rate_factor = 1 ;


Yanıtlandı

1
Geliştirici 1
Derecelendirme
(8)
Projeler
11
18%
Arabuluculuk
6
50% / 17%
Süresi dolmuş
1
9%
Çalışıyor
2
Geliştirici 2
Derecelendirme
(4)
Projeler
5
0%
Arabuluculuk
2
50% / 0%
Süresi dolmuş
1
20%
Yüklendi
3
Geliştirici 3
Derecelendirme
(40)
Projeler
86
13%
Arabuluculuk
30
30% / 47%
Süresi dolmuş
35
41%
Yüklendi
4
Geliştirici 4
Derecelendirme
(11)
Projeler
11
0%
Arabuluculuk
4
25% / 50%
Süresi dolmuş
2
18%
Ücretsiz
5
Geliştirici 5
Derecelendirme
(787)
Projeler
1355
72%
Arabuluculuk
112
28% / 47%
Süresi dolmuş
340
25%
Yüklendi
6
Geliştirici 6
Derecelendirme
(136)
Projeler
190
21%
Arabuluculuk
12
58% / 25%
Süresi dolmuş
1
1%
Yüklendi
7
Geliştirici 7
Derecelendirme
(67)
Projeler
74
7%
Arabuluculuk
33
9% / 55%
Süresi dolmuş
6
8%
Çalışıyor
8
Geliştirici 8
Derecelendirme
(133)
Projeler
193
80%
Arabuluculuk
17
29% / 47%
Süresi dolmuş
10
5%
Yüklendi
9
Geliştirici 9
Derecelendirme
(38)
Projeler
41
29%
Arabuluculuk
2
0% / 0%
Süresi dolmuş
0
Çalışıyor
10
Geliştirici 10
Derecelendirme
(11)
Projeler
12
42%
Arabuluculuk
2
0% / 50%
Süresi dolmuş
0
Yüklendi
11
Geliştirici 11
Derecelendirme
(250)
Projeler
400
38%
Arabuluculuk
82
41% / 20%
Süresi dolmuş
69
17%
Yüklendi
12
Geliştirici 12
Derecelendirme
(261)
Projeler
535
50%
Arabuluculuk
54
41% / 37%
Süresi dolmuş
224
42%
Çalışıyor
13
Geliştirici 13
Derecelendirme
(566)
Projeler
639
41%
Arabuluculuk
21
57% / 29%
Süresi dolmuş
45
7%
Yüklendi
14
Geliştirici 14
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Ücretsiz
Benzer siparişler
Create a MT5 EA based on certain strategy creating a proprietary automatic trading strategy for our private investment portfolio. This is a unique opportunity to work on an exclusive project that demands creativity, strategic thinking, and a deep understanding of financial markets. Project Description: We are looking for a developer to design and implement an advanced automatic trading strategy tailored to our
Hello everyone, As you can read from the title, I'm looking for a specific program, that based on the trading history of an EA, It is able to guess the entry rules, testing many different indicators, or using machine learning models. I Know that software able to randomly generate strategies, like StrategyQuant exist, but they don't work in reverse. The idea started from an old post here on MQL5, where a user asked
Hi, are you able to convert TOS thinkscript to Tradingview pinescript? I will be looking for great developer to bid for this project https://docs.google.com/document/d/1V8rxS1JG_hfcXqBIChJ9GXdVQ11fxBrlpAxwNA9zhZA/edit The code is already attached to the project Best regards
I have this EA that I have build with another developer. I tried backtesting and optimizing it but the test runs too slow. The EA gets instructions from a number of custom indicators to produce orders, I think that's what makes it to slow when testing. I need an experienced MQL4 developer who can dismantle the coded EA and rewrite it in a more logical way, without using the iCustom function. I want everything to be
Are you a coding maestro with a passion for optimizing indicators to blazing speeds? Look no further – I’m in search of a skilled developer to take my indicator to the next level! The Task: I need someone who can dive deep into the code, iron out any pesky errors, and optimize the indicator for lightning-fast responsiveness. Additionally, I require seamless integration of the Zigzag indicator, which currently resides
Hello, I am looking know when market in the exact moment start making a big impulse , I need it an indicator or something else that tell me when this will occur
Dear Developer, I need you to create fxdreema project (EA) to implement a multicurrency math based trading with multiple entry modules. the system will be trading on daily basis with extra confirmation with some math from the higher TF, i use percentage of variation between candle close for a specific candles count like from the start of the day for M5 TF and also there will be some extra math to get the power of the
M Empire EA 30+ USD
Fundamental strategy,trade double bottom and double top enters after the break of structure,it must hold the trades for four to six ours and it must also trade London Session and New York Session
This job is for an MT5 EA to pass prop firm challenges (either 1 or 2 phases) and use in Funded Account (such as NOVA FUNDING, FTMO, MFF, MYFUNDEDFX etc.), and should also work on normal live accounts. Requirements for the EA: - trades well individually on: EURUSD, GBPUSD (preferably also on US30 and others) - must use Stoploss - max. daily Loss 4% - max. daily Drawdown 6% - max. account Drawdown 8% - Should not use
Hello great developer can you help me with MT5 indicator developing? Here is a document that describes the filters that will need to be added to my existing custom indicator. let me know if you have any questions or if anything in the document is unclear I will be looking for great developer to bid for this project Best regards

Proje bilgisi

Bütçe
30 - 100 USD
Geliştirici için
27 - 90 USD
Son teslim tarihi
to 10 gün