工作已完成
指定
Develop a MT5 EA, place pending orders and take profit.
Only experienced MT5 developer, if you think it’s a five minutes job, do not apply the job, i want something more than a five minute jobs.
By accepting the job, you are agreed to give the original source code, as I will need further polish and improvement on the EA, so it’s not making sense everything I need improvement, i need to restart from zero, so by accepting the job, you must agree to give the source code.
EA name: PENDING ORDERS LOOP
Trading with RSI trend, pending orders are placed beyond the RSI upper and lower bound.
Functions need to include
1. Place pending order (Buy Stop / Sell Stop / Buy Limit / Sell Limit)
(1) Placing pending order in x distance
(2) Each pending order is placed at x step
(3) Each pending order is x lots
(4) Each pending order is placed with x coefficient
(5) Place x pending order in sequence (i.e. x Grids)
2. Delete pending order (Buy Stop / Sell Stop / Buy Limit / Sell Limit)
3. Take profit
(1) Closing at total profit / loss for Separate BUY and Sell or both buy and sell positions (i.e. Net positions).
(2) Close positions for x profit/ x profit p
(3) Trailing stop for x profit/ x profit p
(4) Enable virtual stop loss / take profit for a separate / general position.
(5) Closing positions with VIRTUAL stop loss / take profit, or ACTUAL SL / TP.
① Virtual SL / TP, means NOT ACTUALLY having modified SL / TP for existing positions, will execute when positions reach the set SL / TP.
1) So trailing stops can be applied.
② Actual SL / TP, means ACTUALLY modify SL / TP for existing positions, system will AUTOMATICALLY EXECUTE when positions reach the set SL / TP.
1) As for slow execution speed and more than one positions (saying a large number of positions, 100-200 positions), sometimes not all positions can be executed. So the EA needs to set SL / TP to insure all positions are executed.
③ Virtual SL / TP and actual SL / TP are MUTUALLY EXCLUSIVE .
4. Trading strategy steps
(1) Tracking RSI trend.
① Beyond the set RSI upper and lower bound, for example, once RSI is beyond upper bound (i.e. 70), or lower bound (i.e. 40), EA will proceed to place pending orders.
(2) Place orders
① Place pending orders ( 1 or more pending order types ) in x distance, at x step, x lot, with x coefficient, x Grids.
② Each set of pending order is executed in order, and each set is delayed by x seconds (in case of slow execution speeds, and orders are not fully executed)
③ Option to turn on / off for pending orders type (Buy Stop / Sell Stop / Buy Limit / Sell Limit).
④ Inputs need to have 4 sets, separately for Buy Stop / Sell Stop / Buy Limit / Sell Limit.
⑤ User inputs
1) On or off for pending order type (Buy Stop / Sell Stop / Buy Limit / Sell Limit )
2) x distance
3) x step
4) x lot
5) x coefficient
6) x Grids
7) Pending order set is delayed by x seconds
⑥ Example
1) Distance, means point from the current price.
2) Step, mean s points from position to position.
3) Grid, mean s number of pending order
4) Coefficient, means multiple of each position.
⑦ Example 1:
⑧ EURUSD current price (p0): 1.08500
1) Lot 0.01, Distance 50, step 100, coefficient 2, grid 50
2) Pending order, i . e . buy limit
3) First buy limit pending order, is placed at 1.08 55 0 ( 1.085 0 0+50points )
a. Distance 50 point from current price (p0), 1.08550 is p1,
b. Second pending order, is placed at 1.08 6 50 ( 100 point from p1 ) .
c. 1.08 7 50, so on.
4) Coefficient 2, means, first pending order, 0.01 lot, second pending order, 0.02 lot, third pending order, 0.04, 0.08, so on
5) Grid 50, means total of 50 pending order, first pending order, 1.08 5 50, 1.08 6 50, 1.08 7 50 … .. last pending order is, 1.08 5 50 + 50*0.00050
(3) CLP - Work with the close function for total profit or loss
① Close separately buy / sell / both buy and sell positions (i.e. net positions)
② For every x seconds, adjust virtual or actual SL / TP to the desired profit in x dollar or in x profit p.
1) For actual SL / TP, need to consider that in case for the last a few orders can not be set to the SL / TP, once execution is taken place, most positions are closed, the remaining positions need to be closed immediately, EVEN WITH A TOTAL LOSS.
2) And for virtual SL / TP, need to ensure the EA can close a large number of positions in extreme case (i.e. 100-200 positions). Sometimes, for a large number of positions, with slow execution speed or computer, only some positions are closed, not all positions are closed as requested. So for virtual SL / TP, once CLP is activated, ALL POSITIONS NEED TO CLOSE EVEN WITH A TOTAL LOSS.
③ Safe guard
1) If existing net positions, exceed NEGATIVE x dollars, AUTOMATICALLY LOCK POSITIONS AND DELETE ALL PENDING ORDERS , so that net position is zero (i.e. buy positions are equal to sell positions)
④ Once CLP is executed, delete all pending orders;
⑤ Delay by x seconds to restart to track RSI.
⑥ User inputs
1) Selection of positions (buy / sell / both buy and sell)
2) Selection of safe guard (on or off)
3) x TP in dollars
4) x trailing stop in dollars
5) x TP in profit p
6) x trailing stop in profit p
7) Modification SL / TP in every x seconds
Virtual SL / TP
You can refer to the link below, it's something like the following:
https://www.mql5.com/en/code/21362
Trading steps example
1. If I tracked rsi signal (either above or below rsi bound), I want to simultaneously place 2 sets of pending order,
2. with buy limit set of distance 50, step 100, coefficient 1, grid 100, and sell limit of distance 100, step 200, coefficient 2, grid 150 .
3. Because placing pending order takes time, delay is to allow enough time for completion.
4. Say, buy limit set is placed, and wait for 15 seconds, is to allow time for buy limit set to complete, and sell limit set is to place next.
5. delay time, is just a ea process time gurantee, vps sometimes is so slow.
No. | Pending orders | |
1 | RSI | |
2 | RSI Period | x |
3 | RSI Price | Close Price / Open Price / High Price / Low Price / Median Price / Typical Price / Weighted Price |
4 | RSI Buy level | x |
5 | RSI Sell level | x |
6 | Buy stop | |
7 | Buy stop | On / Off |
8 | Distance | x |
9 | Step | x |
10 | Lot | x |
11 | Coefficient | x |
12 | Grids | x |
13 | Delay by "" seconds | x |
14 | Sell stop | |
15 | Sell Stop | On / Off |
16 | Distance | x |
17 | Step | x |
18 | Lot | x |
19 | Coefficient | x |
20 | Grids | x |
21 | Delay by "" seconds | x |
22 | Buy limit | |
23 | Buy limit | On / Off |
24 | Distance | x |
25 | Step | x |
26 | Lot | x |
27 | Coefficient | x |
28 | Grids | x |
29 | Delay by "" seconds | x |
30 | Sell limit | |
31 | Sell limit | On / Off |
32 | Distance | x |
33 | Step | x |
34 | Lot | x |
35 | Coefficient | x |
36 | Grids | x |
37 | Delay by "" seconds | x |
38 | CLP | |
39 | CLP Positions | Buy / Sell / Buy and Sell |
40 | Consider commissions | On / Off |
41 | Consider swaps | On / Off |
42 | Virtual SL / TP | On / Off |
43 | Take profit in dollars | x |
44 | Trailing stop in dollars | x |
45 | Take profit in profit p | x |
46 | Trailing stop in profit p | x |
47 | Modification of SL / TP in "" seconds | x |
48 | Delete all pending orders by FIFO | On / Off |
49 | Delete all pending orders after CLP is executed | On / Off |
50 | Set remaining to BE once CLP is executed | On / Off |
51 | Safe Guard | |
52 | Safe Guard | On / Off |
53 | Positions | Buy / Sell / Buy and Sell |
54 | Net positions loss in dollars exceed "" to lock positions | x |
55 | Loop | |
56 | Delay to restart pending orders after CLP | x |