Auftrag beendet
Spezifikation
The strategy :
Stop and reverse MT5 :
We will use a set of indicators which are independently configurable and can be used on separate timeframes than the EA timeframe.
Ea should have a “round” Money management
Ea should work on 2-3-4-5 digits broker for unusual tickers
Ea should work on generated charts alongside broker charts
Ea should print status in MT5 window – info to print below
The strategy consists in a simple entry triggered on indicator conditions and a step system which resets after a trade round has finished.
Once entry is triggered EA will follow trade in two ways:
Monitor indicators for a complete close.
Monitor trade for grid like additional entries to be added if the option is enabled.
MM = Money management
Trade round logic:
1 : Ea stores Account Balance
2 : Ea waits for entry trigger , Long or Short , first entry will be with MM round 0
3 : After Entry trigger Ea will monitor indicators for close
4 : After close EA will check new Acc. Balance
-
If Balance is higher than stored balance – Trading round finished , Go to 1
-
If Balance is lower than stored balance Continue to 5
5: After close EA waits again for Long Short trigger
6: At trigger EA will enter trade with last MM + 1 step
7: After Entry EA will monitor indicators for close
8 : After close EA will check new Acc. Balance
-
If Balance is higher than stored balance – Trading round finished , Go to 1
-
If Balance is lower than stored balance , continue , Go to 5
Round will continue until balance is higher than stored balance , until then MM step will be recorded and added at each close as in step 6.
This Round logic will control the money management of each trade.
MM step is the last stored MM + one MM
Grids:
Gride type trading must be select-able as an option. If option is disabled EA will work with a single ticket only.
Grids will follow a D'Alenbert formula or a LINIAR formula for LOT increase on each order.
Example for D'Alanbert: If MM starts at 0.04 Lot the next Grid lot will be 0.08 , next one will be 0.12 and so on. This must follow the MM+ step given by the “Round Logic” start Lot and work from there as D'Alanbert.
Liniar is simple – use same Lot size as last ticket lot size.
Options for grids :
Drop down Selection : Enable / Disable
Drop down Selection - Formula : Liniar / D'alanbert
Drop Down selection : Static / Dynamic / Price-Distance
Float : Minimum price distance in %
The grid function should be able to place grids with the following options :
-Static:
Will place a new order at a price and/or % distance from last order ( configurable )
-Dynamic :
Will place a new order at a price and/or % distance from last order ONLY if indicators allow it.
-Dynamic + Price-Distance Calculation ADD:
Same as Dynamic but will calculate number of tickets based on first entry price to current price distance. The formula should look similar to this:
Tickets_Allow = ( ( Current Price - First Grid Entry ) - ( Distance in $ for tickets * Number of tickets) ) / Distance in $ for tickets
The Ea will have permission to place as many tickets at a given price as this formula allows it on a price to ticket range calculation given indicators and/or Weight Points allow it.
An extra option is needed here: Time to wait before opening the next order to protect account from slow brokers.
As an example : If the price jumps 3% in one direction but EA could not place grid orders because indicators where not aligned , once indicators aligns in the correct side the Price distance formula will calculate how many tickets where possibly open in this grid and how many there actually are open. Let's say we have 4 tickets open but on a price movement of 3% we could have 11 total open according to minimum price-distance for next ticket.
At that point the EA will open 7 tickets at the same level.
Indicators:
Wanted indicators : SAR, MACD, STOCH-RSI, STOCH, RSI, EMA and Volatility Stop ( costume indicator , PINE code provided by me )
Each indicator should be usable on different timeframe than EA timeframe.
In addition to each indicators default settings EA must have a disable function to disregard indicator individually and will work with the remaining indicators.
The options for each indicator are the default option in addition to the ones below:
Indicator EMA/SAR: settings
-Timeframe : select from drop down
if EMA /SAR> Price then Indicator flags to SHORT
EMA/SAR< Price then Indicator flags to LONG
Indicator RSI Settings:
Timeframe : select from drop down
Short Zone : RSI > 70 ( float input)
Long Zone : RSI < 30 ( float input)
if RSI> ShortZone then Indicator flags to SHORT
If RSI< ShortZone then Indicator flags to LONG
If no criteria met indicator flags to NEUTRAL
Indicators STOCH-RSI / STOCH settings :
Timeframe : select from drop down
Short Zone : Stoch/SRSI > 70 ( float input )
Long Zone : Stoch/SRSI < 30 ( float input)
if Stoch/SRSI> ShortZone then Indicator flags to SHORT
If Stoch/SRSI< ShortZone then Indicator flags to LONG
If no criteria met indicator flags to NEUTRAL
Indicator Volatility Stop: ( this is an imported script from tradingview and needs to be coded as mt5 indicator – code is found below )
if Indi < Price then Indicator flags to LONG
if Indi > Price then Indicator flags to SHORT
Volatility stop code :
“””
//@version=2
strategy("BitCross strategy v1.0", overlay=true)
trenddecider = input(2)
trend = ema(low,trenddecider)
length = input(20)
mult = input(1)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=line, linewidth=2)
Short = Price < vstop
Long = Price > vstop
“””
Indicators conditions:
All configured indicators will generate 2 or 3 distinct “states” based on the settings for each of them.
The States are :
- Aligne Short
- Aligne Long
- Neutral
These will be used only for the “Enabled indicators” , for example if I choose to NOT use RSI ( the dropdown enable / disable option ) and all the other 5 indicators are flagging Short EA will work as if 6 indicators are aligned Short.
Each indicator will flag a state, afterwards if all states are same Ea will work “Aligned” else it will send a “Neutral” to Triggers.
Ea triggers :
Ea will monitor the indicator states and will trigger as follow:
If no trade open and Short align :
-Ea will start a Short trade using MM+Step ( if round is underway)
-Ea will start a Short trade using start MM ( if round is new )
If SHORT trade open and Short aligne :
Ea will continue trade and grid , if enabled , will continue.
If LONG trade open and Short aligne :
Ea will CLOSE all Long tickets ( trades ) and wait for round logic to continue ( basically will check if the account balance is higher than recorded balance to reset or not Step MM )
If no trade open and Long align :
-Ea will start a Long trade using MM+Step ( if round is underway)
-Ea will start a Long trade using start MM ( if round is new )
If SHORT trade open and Long aligne :
Ea will CLOSE all Short tickets ( trades ) and wait for round logic to continue ( basically will check if the account balance is higher than recorded balance to reset or not Step MM )
If LONG trade open and Long aligne :
Ea will continue trade and grid , if enabled , will continue.
If No aligne a.k.a “ Neutral”:
Ea will wait – place a sleep here in the code for better backtesting.
Print info :
Ea must have a info window with the following print outs :
Curent round number
Last stored balance ( high balance )