Техническое задание
Hello!
I have made a very basic version of the EA that I want, sadly I'm not good with anything more complex than this so I'm here to have someone implement the rest of the features that I want.
I cannot provide you with the indicator due to licensing, you can find the demo on the Market.
So far the EA does the following:
Loads indicator
Opens buy/sell orders on signal depending on the mode selected in the settings (each mode opens more positions) according to lot size settings
So yes, it's very basic at the moment. Below are the features I want added.
-> Set stop loss using indicator, which has 4 stop loss levels, set SL of trades depending on which option is chosen
e.g SL 1, SL 2, SL 3, SL 4
-> TP of each position is NOT USING INDICATOR, it will be calculated by the fib points as follows:
1.618, 2, 2.272, 2.618, 3, 3.414, 3.618, 4, 4.236
-> Each position will have higher fib TP
-> Fib will be calculated using CLOSE PRICE
-> For buy signal, fib is drawn from top to bottom (swing high close to swing low close in the box)
-> For sell signal, fib is drawn from bottom to top (swing low close to swing high close in the box)
-> Check this link for example. Arrow shows draw direction of fib https://postimg.cc/PNFdHth3
-> Another example in the MT4 terminal
-> There should be a setting called "Extra position open TP" which when enabled, it will open 1 extra position but this position will not have TP set
-> Have different trailing stop modes which will be explained here
-> Trailing stop in pips normal (on/off) (after how many pips move SL) (number of pips)
This is just normal trailing stop, so after some number of pips, move the SL by some other number of pips. Example: every 20 pips, trail SL by 5 pips.
-> Trailing stop when TP hit (on/off) (number of pips)
This trailing stop will move only when one of the TPs is hit
For this type, make sure only the open positions of the signal is affected,
not any other open positions from other signals.
Example: Buy signal on EURUSD, when TP 1 is hit, move SL up 10 pips, when TP 2 is hit, move SL up 10 pips again etc
-> When signal is generated, check if the entry is already going through some TPs. Have a setting "TPs gone allowance" which is a number. If it's going through more TPs than "TPs gone allowance", then don't open that trade.
-> Example, if "TPs gone allowance" is set to 4, when signal is generated, the entry price is already gone through 4 TPs, then don't open trade. Else, if it's gone through less than 4 TPs, then open trade, but open the rest of positions according to trading mode.
So if trading mode is 4 (4 positions), and "TPs gone allowance" is 3, then if entry price is going through only 1 TP, then open the other 3 positions with the 3 TP that come after.
If this value is 0, then just open the trade as normal according to how trading mode and how many TPs are still available.
-> When signal is generated, check if entry is already too close to the next TP. This should be in a setting "TP close allowance". If the next TP from entry is equal to or less than the "TP close allowance", then don't open that position.
-> Example. If "TP close allowance" is 5 pips, when signal is generated if entry price is within 5 pips of the next TP, then don't open the position for that TP, but open the rest after that (depending on trading mode).
More detailed example: Trading mode 3 (3 positions) and "TP close allowance" is 5 pips, then when signal is generated, if first TP is equal to or less than 5 pips, then don't open the position for this TP, only open the other 2 positions (TP2 and TP3)
If this value is 0, then don't worry about how close first TP is, just open trades as normal.
-> Some kind of way to hedge losing trades to minimise losses. I say "some kind of way" because when it comes to hedging, I don't really know what the best way to do it is. I guess you could make some use of there being multiple positions to open opposite positions to negate losing ones? I don't know but that's just a thought, I will trust the developer to come up with an adequate solution for this.
If you have any questions, you can message and I will do my best to explain. Thanks!