작업 종료됨
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
명시
Hello!
I would like offers for the creation of the following Expert Advisor.
Price range: 450€ max.
The programmer should be English- or German-speaking (see German Version below) as I would like to quickly discuss (in writing is ok) the correct understanding of my idea and prevent misunderstandings.
Deadline (not very urgent) and definitive price are negotiable.
Please only make an offer in case you have red my specifications, understood at least most of it and have all the expertise to realise my specifications without a problem.
I provide a sketch or table for the input parameters. Looking at it before or while reading the specifications might make things clearer.
I am looking forward to a productive collaboration.
Best regards, Nick
(I uploaded this order again, since before it only appeared in the German language section)
Task
Programming an Expert Advisor trading on the 1min chart (MT5)
Main functions
Five different strategies should be realised. The strategies all consist of the same basic template and can be considered as one strategy with 5 different variations, which have different adjustable input parameters. In the following I will still refer to each variant as strategy.
Strategies
The strategies all consist of “entry criteria” based on candlestick patterns and corresponding trailing stops. The strategies are each intended to fulfill a purpose in different situations of market volatility.
Each of the different strategies can be deactivated with a checkbox, basic status: all strategies are active. This allows that for example only four or three of the different strategies are active within the EA.
Entry criteria
The entry criteria for the strategies all consist of a number of adjustable positive or negative candles (0-10) and an additional price movement of at least plus/minus x percent per candle (always 4 decimal places for percentages, e.g. 0.0150%) including an immediate entry at a price action of plus/minus x percent (0 candles).
An additional non-mandatory entry criterion should be an overall Price action of least plus/minus x percent within the last x minutes / x 1-min candles. The number x here is always the same as the number of positive / negative candles within each strategy.
This entry criterion is normally turned off for each of the five strategies, but can be added by a checkbox in the input mask (see example below).
Trailing stop + other exit criteria
Each of the five strategies should have an individually adjustable trailing stop (straight, trail start, trail distance), stop loss, take profit and break even (start after n percent/points and close at plus n percent/points added to position).
Trail start, trail distance, stop loss, TP, BE can be set in % and in points (0,1 – 999) within the input mask.
TP and BE should be able to be activated with a checkbox for each strategy, i.e. it must not be a prerequisite to have them defined within all of the strategies.
The position size should be adjustable as a percentage of the account balance (1-99) and as a fixed contract size (0,1 – 999) within the input mask.
Other functions
Only two positions can be open per chart at the same time, one buy and one sell position. Not two buy positions, not two sell positions, but one active buy positions allows for one additional sell position being opened and vice versa.
Further buy/sell signals can only be generated after the previous buy/sell position has been closed.
Despite the open positions, the EA should continue to search for the entry criteria, i.e. as soon as a position on the chart is closed, a new position can theoretically be opened immediately.
Only a maximum of x positions (2-998) is allowed to be open at the same time overall (within all charts the EA is running on). The possibility that several positions are opened at the same time and thus more positions are open than the maximum desired must be taken into account insofar as the functionality is not impaired by the occurrence of this case.
A possibility needs to be implemented that by one-click (checkbox or button in the input mask) the EA is banned from opening new positions on all charts, i.e. turning it off, while all open positions are still being closed according to their predefined trailing stop or other exit criteria.
It is up to the programmer how to achieve this. One possible I can imagine is overwriting all entry criteria with a situation which will never occur (for example price action of +1000% per candle). But there might be an easier way to prevent an EA from opening new positions.
At the same time, it should be possible to prevent the EA from opening new positions in just a single chart window in the same way, while trading in the remaining charts on which the EA is active is not affected.
(This functionality is negotiable and not very important, as it is the only one working on a single chart and I imagine it hard to implement)
All executed trades should be graphically represented in the chart. This function of the MetaTrader must be preserved.
There must be a clear input mask for all the functionalities described so far.
I provide a table as example which hopefully makes things clearer.
In reality it can look different; this will just be an example with arbitrary numbers.
Less important functions
(Not absolutely necessary in case they are disproportionately expensive to implement or restrict the basic functionality. In this case feedback from the developer is required before taking the job)
Pause function: By using a checkbox in the input mask it should be possible to assign a pause in x seconds (1-999), measured after the last position was closed to each strategy. A new position may only be opened after the pause has expired.
As described above, the entry criteria should continue to be monitored during the pause period, so that a position could theoretically be opened immediately after the pause has expired.
Restriction of trading hours for each strategy: It should be possible to activate a strategy only for a specific time interval (always in the form of a daily time, e.g. from 13:30 to 16:00) using a checkbox in the input mask, basic status: all strategies are active all the time.
Restriction of the trading hours for the entire EA: It should be possible to activate the EA only for a certain time interval (see above) using a checkbox.
Only short / long positions: For each strategy individually as well as for all strategies it can be assigned via checkbox whether only short or long positions are allowed (by default both). In addition, it should be possible to set a time interval (see above) when the checkbox is activated, in which those conditions apply.
After the programming
If all the criteria are fulfilled and the trading robot runs according to my specifications will be tested by me in a demo account and the strategy tester.
In case of errors or deviations from the described functions the programmer must be ready to correct them free of charge, even in case the mistakes remain undetected in the testing phase and only are detected later, after the financial transaction is complete.
Additional to the program file I will need the source code, in case later modification or addition to the EA will not be possible with the same programmer.
Later modifications which are not specified in this text are of course not mandatory and monetization will be newly discussed.
The Developer is not allowed to use any parts of his development which is outlined in this description or which will be agreed upon later in the cooperation in any other commercial or non-commercial projects without my prior authorisation and will treat all information which is provided to him with confidentiality.
Bugs
In case the position cannot be opened for some reason (I do not know why this may or may never occur), the EA should wait 3 seconds and check if an entry criterion is still met, leading to a new attempt to open a position or not.
In case a position cannot be closed for some reason, the EA will keep trying to close it as fast as possible and in case it is not possible to have closed the position 1 minute after the first attempt should create an alarm notification.
In such cases as well as any situation where the fulfilment of the defined criteria cannot be met or any other failures occur a log file has to be generated, which allows an understanding what caused the aberrance to occur and also allows an identification how often such events occur in general. It is up to the programmer how to realise this, but since it might cause trouble in the testing phase it should be considered.
Of course this will only be necessary for events which are likely to ever occur and cause trouble.
It is up the developer to decide based on his knowledge, experience and his declared best effort to create an EA which runs smoothly according to the predefined criteria, which were agreed upon.
German version
(unvollständig und dient nur dem besseren Verständnis. Die englische Version ist ausschlaggebend)
Auftrag
Programmierung eines Expert Advisors, der im 1min-Chart handelt
Hauptfunktionen
Es sollen fünf verschiedene „Einstiegskriterien“ erkannt werden. Die Einstiegskriterien basieren alle auf der gleichen Vorlage und können als eine Strategie mit 5 unterschiedlichen Variationen angesehen werden, die jeweils verschiedene, individuell einstellbare Eingabeparametern besitzen.
Die Einstiegskriterien bestehen alle aus einer einstellbaren Anzahl von positiven oder negativen Kerzen (z.B. 0-4) und zusätzlich einer Kursbewegung von mindestens plus/minus x Prozent pro Kerze (immer 4 Dezimalstellen für Prozentangaben, also z.B. 0,0150%) oder ein sofortiger Einstieg bei einer Kursbewegung von plus/minus x Prozent (d.h. 0 Kerzen).
Jedes dieser Einstiegskriterien (im Weiteren auch als Strategien bezeichnet, wobei es im Grunde nur Variationen derselben Strategie sind) soll variabel mit einer Checkbox aktivierbar sein, Grundstatus: alle Einstiegskriterien sind aktiv. Die Einstiegskriterien sind gedacht als Signale für unterschiedliche Volatilität.
Jeder der fünf Einstiegsmöglichkeiten soll ein individuell einstellbarer Trailing-Stop (Straigt, Trail-Beginn, Trail-Abstand), Stop-Loss, Take-Profit und Break-Even (Beginn nach n Prozent/ Punkten und Schließung bei +n Prozent/ Punkte addiert zu Einstiegskurz), zugeordnet werden. Alle Angaben sollen primär in Prozent, sowie sekundär auch in Punkten eingestellt werden können. Über eine einfache Umrechnungsmöglichkeit zwischen Punkten, Prozent und Euro in jedem Chart denke ich noch nach, kann aber wahrscheinlich einfacher außerhalb dieses EAs realisiert werden.
TP und BE sollen für jedes Einstiegskriterium mit einer Checkbox aktivierbar sein, also nicht notwendigerweise für jedes Einstiegskriterium definiert sein müssen.
Die Positionsgröße soll primär als % des Kontostandes und sekundär als Festbetrag (bezogen auf die Anzahl der Kontrakte) angegeben werden können und entsprechend in jedem Chart auf die Lotgröße umgerechnet werden.
Pro Chart dürfen maximal zwei Positionen offen sein, eine Kauf- und eine Verkaufsposition. Nicht Zwei Kauf- oder Verkaufpositionen, aber eine offene Kaufposition schließt das eröffnen einer weiteren Verkaufsposition nicht aus und andersherum.
Der EA soll jedoch trotz der offenen Positionen weiterhin nach den Einstiegskriterien suchen, d.h. sobald eine Position auf dem Chart geschlossen wird, kann theoretisch sofort eine neue Position eröffnet werden. Die Anzahl der positiven oder negativen Kerzen wird z.B. also nicht erst nach dem Schluss der letzten Position neu gezählt.
Insgesamt sollen maximal x Positonen gleichzeitig offen sein dürfen. Die Möglichkeit, dass zeitgleich mehrere Positionen eröffnet werden und so mehr Positionen offen sind, als maximal erwünscht muss insofern berücksichtigt werden, als dass die Funktionalität durch das Eintreten dieses Falls nicht beeinträchtigt wird.
Es muss eine Möglichkeit implementiert werden, die es erlaubt mit einem Klick dem EA das Eröffnen neuer Positionen auf allen Charts zu verbieten, ihn also auszuschalten, während alle offene Positionen noch zu den vordefinierten Strategien geschlossen werden. Auf welchem Weg das zu erreichen ist, ist dem Programmierer überlassen. Ein möglicher Weg könnte es sein, die Einstiegskriterien in einen Zustand zu versetzen, der in der Realität nie erreicht wird.
Gleichzeitig muss es möglich sein den EA auf gleicher Weise an dem eröffnen neuer Positionen in nur einem Chartfenster zu hindern, während das Traden in den restlichen Charts auf denen der EA aktiviert ist davon nicht beeinträchtigt wird.
Es muss eine übersichtliche Eingabemaske für alle bis jetzt beschriebenen Funktionalitäten geben.
Alle ausgeführten Trades sollten graphisch im Chart abgebildet sein. Diese Funktion des Metatraders muss erhalten bleiben.
Zusätzliche Funktionen:
Nicht zwingend notwendig, soweit sie unverhältnismäßig aufwendig zu realisieren sind oder die Grundfunktionalität einschränken, ggf. Rücksprache erforderlich.
Pausenfunktion: Per Checkbox soll jeder Strategie eine Pause in x Sekunden zugeordnet werden können, gemessen nach Positionsschließung. Erst nach Ablauf der Pause, darf eine neue Position eröffnen werden.
Wie oben beschrieben, sollen die Einstiegskriterien während der Pausenzeit jedoch weiter überwacht werden, so dass eine Position theoretisch sofort nach Ablauf der Pause eröffnet werden könnte.
Einschränkung der Handelszeiten für jede Strategie: Per Checkbox soll es möglich sein eine Strategie nur für ein bestimmtes Zeitintervall (immer in Form einer täglich geltenden Uhrzeit, z.B. von 15:30 bis 16:00) zu aktivieren.
Einschränkung der Handelszeiten für den gesamten EA: Per Checkbox soll es möglich sein den EA nur für ein bestimmtes Zeitintervall (siehe oben) zu aktivieren.
Weniger wichtige Funktionen
Nur Short- / Long-positionen: Jeder Strategie kann per Checkbox zugeordnet werden ob nur Short oder Long-Positionen zulässig sind (Standardmäßig beides). Zusätzlich soll es bei Aktivierung der Checkbox möglich sein, dafür ein Zeitintervall (siehe oben) festzulegen.
Ob alle Kriterien erfüllt sind und der Handelsroboter nach meinen Vorgaben läuft, wird von mir in einem Demokonto und dem Strategietester getestet.
Zusätzlich zur Programmdatei benötige ich den Quellcode, falls eine spätere Änderung oder Ergänzung des EA mit demselben Programmierer nicht möglich ist.
Der Programmierer muss bereit sein, Fehler zu beheben und kostenlosen Support zu leisten, auch wenn die Fehler oder Abweichungen von der beschriebenen Funktion in der Testphase unentdeckt bleiben und erst später, nach Abschluss der Finanztransaktion, entdeckt werden.