Работа завершена
Техническое задание
MQL5 EA - One sequence of Orders from Order1 up to Order10. Restart at next Gridline.
The EA main goal is to have a sequence of Orders from 1 up to 10. Example: If price of Order1 = Order3, Order3 can be open only after price hit Order2 first; the Order2 will only open after Order1 is already open, the Order3 will only open after Order2 is already open, etc.
The restart of the EA/sequence will occur only after the price hit next gridline, instead of at the end of the sequence.
A secondary goal is to try use the same EA to hedge in two different brokers (in theory). Example: if two EAs have same specs on different brokers (broker2 is hedge), Order1_Buy on Broker1 and Order1_Sell on Broker2, theoretically both will open orders at same time when price hit same gridline if the Sequence and GRID have the same specs on both brokers.
Example to clarify main concept of some sequences (not precise simulation to use as reference). Sequences, some profitable and others not profitable, restarting when price touches next gridline:
INPUT MENU SETTINGS
[Checkbox] GLOBAL EA RESTART: [ ]
[Dropdown] Trigger: (all TPs,SLs,Trail / any TP,SL,Trail)
(after price hit all TPs,SLs or Trail,( in theory all orders are closed) restart EA / if price hit any TP,SL or Trail, close all Orders and restart EA)
GRID
[Input Field] Reference Price: (default = price when EA opened first time)
[Input Field] Gridlines Distance in Pips from Reference Price (X pips): 50
SEQUENCE SETTINGS
[input string] PipStep Order 1>2>3>4>5>6 >7>8>9>10 ="+0000/+0100/+0200/+0300/+0400/-0100/-0200/-0300/-400/-500";
[input string] Lot_Size Order 1>2>3>4>5>6 >7>8>9>10 ="00.01/00.02/00.03/00.04/00.05/00.06/00.07/00.08/00.09/00.10";
[input string] Trade_TP Order 1>2>3>4>5>6>7>8>9>10 ="0050/0100/0150/0200/0250/0300/0350/0400/0450/0500";
[input string] Trade_SL Order 1>2>3>4>5>6>7>8>9>10 ="0060/0110/0160/0210/0260/0310/0360/0410/0460/0510";
[input string] Trailing Order 1>2>3>4>5>6>7>8>9>10 ="0052/0062/0072/0082/0092/0102/0112/0122/0132/0142";
ORDERS TYPE (-1=None, 0=Buy, 1=Sell)
[Input Field] Order1 type = 0;
[Input Field] Order2 type = 0;
[Input Field] Order3 type = 0;
[Input Field] Order4 type = 0;
[Input Field] Order5 type = 0;
[Input Field] Order6 type = 0;
[Input Field] Order7 type = 0;
[Input Field] Order8 type = 0;
[Input Field] Order9 type = 0;
[Input Field] Order10 type = 0;
VIRTUAL ORDERS (if blank = Real)
[Checkbox] Order1 virtual = [ ];
[Checkbox] Order2 virtual = [ ];
[Checkbox] Order3 virtual = [ ];
[Checkbox] Order4 virtual = [ ];
[Checkbox] Order5 virtual = [ ];
[Checkbox] Order6 virtual = [ ];
[Checkbox] Order7 virtual = [ ];
[Checkbox] Order8 virtual = [ ];
[Checkbox] Order9 virtual = [ ];
[Checkbox] Order10 virtual = [ ]
[Input Field] Magic Number = 123456
[Input Field] Slippage (pips) = (0 = off)
[Input Field] Delay between Orders (seconds) = 0
NOTES:
GLOBAL RESTART - if unchecked, each order will open only once and EA stops opening more orders after Order10 (if price reach Order10).
SEQUENCE SETTINGS- orders must be open in order in sequence from 1 to 10.
SEQUENCE SETTINGS- all PipStep Orders 1/2/3/4/5/6/7/8/9/10 positions must always have the same Gridline as the price reference (new/same Gridline at each restart).
example1. EA only open Order3 after Order2 has opened and after price gone up or down (+/-) X pips from Gridline reference (Order4 after Order3, etc.).
example2. if (Order3 PipStep = Order1 PipStep) but different than Order2 PipStep, Order3 only open after price hit Order2 PipStep, which was after Order1 PipStep.
VIRTUAL ORDERS - when opening next order, EA must consider any order checked as virtual as if it is a real order (ex. if Order2 is Virtual, EA open Order3 only after price hit PipStep Order2 position first (as if Order2 was real)).
VIRTUAL ORDERS - if GLOBAL RESTART and VIRTUAL ORDERS are both checked, and if trigger any (TP,SL,Trail)>0 is chosen in GLOBAL RESTART, any TP,SL or Trail of any Virtual Order will trigger the GLOBAL RESTART as if it was a real order.
Trigger to open Order1: usually Order1 PipStep = 0000 so when EA (re)Start and after price hit next up or down Gridline, the EA will open Order1.
Trigger to open Order2-10: previous order is already open and price hit each PipStep distance from Gridline reference.
Trigger to close orders: each TP,SL,Trail.
The TP,SL,Trail will not be sent to broker when order is opened, instead EA must close automatically each order when the price hit each TP,SL or Trail.
EA must work with 4 and 5 digits Pairs.
When I use EA to hedge in two different brokers, if two EAs have same specs on different brokers (one is hedge), Order1_Buy on Broker1 and Order1_Sell on Broker2, theoretically both will open at same time when price hit same gridline.
EA must work on demo, real accounts and strategy tester. I need the .mql5 source script file not only the .exe