I need an EA that read signal from a csv file

2015.03.04 Experts

Job finished

Execution time 115 days

Specification

I need an Expert Advisor that works in strategy tester and in live trading on a Metatrader 4 terminal. I would like this job to be done through the "Job service".

The task will be to read signal from a csv file and to execute orders when one or several new signals are detected. The file is updated daily but the EA must performs its check every 5 minutes.

How it works ?

Let's take an example to see how it works.

Content of the file the 2015-01-01:

Date,Pair,PriceLimit,PositionType

File is empty, there is no signal and no position that need to be open.

Content of the file the 2015-01-02:

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-02,EURGBP,0.77877,-1
2015-01-02,USDJPY,120.132,1

The 2nd of January the EA must open 3 positions :

  • long EURUSD with limit at $1.17545 plus an offset
  • short EURGBP with limit at $0.77877 plus an offset
  • long USDJPY with limit at $120.132 plus an offset

The offset is a value that comes from an external variable. It can be positive or negative depending on the type of the position : long or short.

Lot size must be calculated so that the margin is equal to 1/3 of the balance the EA can trade with (see bellow in Volume Of The Position).

Content of the file the 2015-01-15:

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-02,EURGBP,0.77877,-1
2015-01-02,USDJPY,120.132,1
2015-01-15,EURUSD,1.18325,1
2015-01-15,EURGBP,0.79877,-1
2015-01-15,USDCHF,1.06877,-1

The 15th of January the EA :

  • must close the USDJPY (long) position at market price
  • and open a new USDCHF (short) position with a limit at 1.06877 plus an offset
  • the EURUSD (long) and EURGBP (short) positions remains open

Same rules as above apply for the offset and the lot size.

Content of the file the 2015-01-19:

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-02,EURGBP,0.77877,-1
2015-01-02,USDJPY,120.132,1
2015-01-15,EURUSD,1.18325,1
2015-01-15,EURGBP,0.79877,-1
2015-01-15,USDCHF,1.06877,-1
2015-01-19,AUDUSD,0.82287,1
2015-01-19,USDJPY,119.225,-1
2015-01-19,USDCHF,0.99885,-1

The 19th of january the EA :

  • close the EURUSD and EURGBP position at market price
  • and open two new positions : AUDUSD (long) and USDJPY (short) with 1/3 of the capital each and at limited price +/- offset (same as above)
  • the USDCHF (short) position remains open

Same rules as above apply for the offset and the lot size.

Number of positions

In this exemple the file structure correspond to a strategy that trade with 3 positions at a time but the EA must be able to handle a file with only one position at a time, or with two positions at a time or even with four positions at a time. No more.

Exemple with a strategy that trade with only one position at a time :

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-15,EURGBP,0.79877,-1
2015-01-19,USDCHF,0.99885,-1

The currency pair can be the same and the signal alternate between long and short:

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-15,EURUSD,1.20877,-1
2015-01-19,EURUSD,1.15885,1

Exemple with a strategy that trade with 2 positions:

Date,Pair,PriceLimit,PositionType
2015-01-02,EURUSD,1.17545,1
2015-01-02,EURGBP,0.77877,-1
2015-01-15,EURUSD,1.18325,1
2015-01-15,USDCHF,1.06877,-1
2015-01-19,AUDUSD,0.82287,1
2015-01-19,USDJPY,119.225,-1

And so on for the strategy that trade with four positions.

What is a signal ?

A signal is an information in the file that point to a currency pair (i.e. EURUSD) for which no position is actually open in the direction specify by the column PositionType (long : 1 or short : -1).

Opening And Closing A Position

One position must be open if a signal is detected for the day of the current bar (it must works in Strategy Tester with a csv file that contain the history of signals over several years)

Opening a new position would automatically close an existing position, except for the n first positions opened after the EA is launch.

Opening a new position and closing an existing position should trigger a popup window with trading information.

The order to open a position (long or short) must be done at a limited price : the limited price is calculated from the column "PriceLimit" of the csv file plus or minus an offset that should be settable as an external variable. The offset must be positive of negative whether the position type is long or short.

Example :

  • if PriceLimit to open a short position on EURUSD is $1.17555 and the offset is 10pips then the price limit must be $1.17545 (i.e. 1.17555 - 10) 
  • if PriceLimit to open a long position on EURUSD is $1.17555 and the offset is 10pips then the price limit must be $1.17565 (i.e. 1.17565 + 10)

The order to close a position (long or short) must be done at market price.

There is no take profit nor stop loss.

All opened position must be closed automatically when EA is shut down.

If an error occurs when opening or closing a position, the EA should display a window with the error information and retry the attempt.

Volume Of The Position

I would like an external variable that define the % of the account balance the EA can use to open positions.

Example :

My account balance is $1000 and the variable is set to 80% so the EA must have $800 to trade with.

Total margin must be equal to 100% of the account balance the EA can trade with (i.e. $800).

The size of each position must depend of the number of position in the strategy (i.e. in the file).

  • for a one position strategy the margin of the position must correspond to 100% of the account balance the EA can trade with (i.e. $800 * 1)
  • for a two positions strategy the margin of each must correspond to 50% of the account balance the EA can trade with (i.e. $800 * 0.5)
  • for a tree positions strategy the margin of each must correspond to 33.33% of the account balance the EA can trade with (i.e. $800 * 0.33)
  • for a four position strategy the margin of each must correspond to 25% of the account balance the EA can trade with (i.e. $800 * 0.25)

Error Handling

The EA should control only its own positions and shouldn't deal with positions opened manually or by other EAs.

If there are any errors, it must print a message describing the error.

Important

The EA should verify the csv file for new signal every 5 minutes.

The EA should be able to run in strategy tester with a csv file that contain several years of signal. 

The EA should be able to work with multi-currency, includind the BTC/USD pair at FXOpen.

When runing the EA on a real account, it should create a button on the chart, which permits trading.

Few Questions

How the program will be checked? Will you get a demo version?

Will you get the source code of the program, and if so, when - after the complete payment or right away?

How long will be the technical support and on what terms? Will the fix of errors (discrepancies from the algorithm) be done free of charge? How much will small improvements cost?

What electronic payment systems does the developer use? is euro accepted for currency ?

Responded

1
Developer 1
2015.03.04
Rating
4.81
(134)
Projects
240
31%
Arbitration
43
23% / 60%
Overdue
118
49%
Free
2
Developer 2
2015.03.04
Rating
5
(14)
Projects
27
22%
Arbitration
18
6% / 89%
Overdue
10
37%
Free
3
Developer 3
2015.03.04
Rating
4.87
(38)
Projects
66
39%
Arbitration
6
33% / 50%
Overdue
19
29%
Free
4
Developer 4
2015.03.04
Rating
4.82
(128)
Projects
236
65%
Arbitration
30
37% / 23%
Overdue
67
28%
Free
5
Developer 5
2015.03.04
Rating
4.87
(167)
Projects
385
52%
Arbitration
41
46% / 34%
Overdue
191
50%
Working
6
Developer 6
2015.03.05
Rating
4.92
(200)
Projects
330
65%
Arbitration
9
56% / 0%
Overdue
84
25%
Free
7
Developer 7
2015.03.05
Rating
4.92
(289)
Projects
465
45%
Arbitration
26
31% / 31%
Overdue
107
23%
Free
8
Developer 8
2015.03.05
Rating
4.98
(162)
Projects
210
52%
Arbitration
6
17% / 67%
Overdue
15
7%
Free
9
Developer 9
2015.03.05
Rating
5
(1)
Projects
4
0%
Arbitration
0
Overdue
2
50%
Free
10
Developer 10
2015.03.05
Rating
4.97
(59)
Projects
182
55%
Arbitration
31
45% / 16%
Overdue
119
65%
Free
11
Developer 11
2015.03.05
Rating
0
Projects
1
0%
Arbitration
0
Overdue
0
Free

Project information

Budget
30 - 50 USD
For the developer
27 - 45 USD
Deadlines
from 5 to 10 day(s)