![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
En tant que participant à cette action, j'accepte de rendre l'affaire publique, je n'ai rien à cacher.
Alors éteignez-le.
Bonjour, je voudrais un EA ou un indicateur et un script pour créer un graphique Renko dans MT5.
C'est-à-dire qu'il est possible d'accrocher des indicateurs et des scripts sur le graphique.
Dans MT4, il est implémenté par plusieurs conseillers, j'utilise personnellement RenkoLiveChart_v3.2, j'aimerais avoir quelque chose de similaire pour MT5.
Eh bien, j'ai joint le code de RenkoLiveChart_v3.2,
Voici la réponse de l'artiste :
"Je peux commencer.
Mais je le ferai dans le courant de la semaine.
C'est tout, un autre rejet et c'est bon.
alors mettez-le en place.
Voici ce que le contractant a écrit au sujet du cahier des charges (copié mot à mot) :
"Veuillez joindre le code source de l'expert en tant que ToR. (c'est-à-dire RenkoLiveChart_v3.2)
montant 100 temps 5."
Toute la correspondance avec l'interprète était uniquement dans le service, de sorte que les modérateurs la voyaient lorsqu'ils décidaient de l'amende.
Que poster ? Code EA pour MT4 ? Voici le texte de l'annonce :
Bonjour, Je voudrais un Expert Advisor ou un indicateur et un script pour créer un Renco-Chart dans MT5.
C'est-à-dire qu'il est possible d'accrocher des indicateurs et des scripts sur le graphique.
Dans MT4, il est implémenté par plusieurs conseillers, j'utilise personnellement RenkoLiveChart_v3.2, j'aimerais avoir quelque chose de similaire pour MT5.
Eh bien, j'ai joint le code de RenkoLiveChart_v3.2,
Voici la réponse de l'artiste :
"Je peux commencer.
Mais je le ferai dans le courant de la semaine.
C'est tout, un autre rejet et c'est bon.
Et voici la phrase suivante écrite qu'en général - il est réel de faire le travail, mais à un prix de 4 fois plus.
Bien sûr, dans les discussions ci-dessus, on entend dire que les TOR ont peut-être changé, ou qu'il s'agit d'une autre force majeure.
Voici une phrase littérale de l'interprète (copiée) expliquant pourquoi le travail n'a pas été fait : "il s'avère que ce sera irréaliste à cause de l'architecture de MT5".
Et la phrase suivante est écrite qu'en général - il est possible de faire le travail, mais à un coût 4 fois plus élevé.
Et qu'est-ce que j'ai à y faire en tant que client ? L'arbitre Rosh ne me l'a toujours pas expliqué.
Et pour compléter le tableau, faites venir un artiste ici.
Pour être honnête, si j'étais lui, je serais venu moi-même il y a longtemps, je vous aurais donné 5 $ et j'aurais dormi paisiblement.
Mais maintenant que nous avons commencé, allons-y. Publiez le texte complet de la correspondance (y compris votre mission et sa lettre) avec une chronologie, et demandez à Rashid ou Renat de faire des commentaires.
komposter:
Et pour compléter le tableau, faites venir un artiste ici.
Pour être honnête, si j'étais lui, je serais venu moi-même il y a longtemps, je vous aurais donné 5 $ et j'aurais dormi paisiblement.
Mais maintenant que nous avons commencé, allons-y. Publiez le texte complet de la correspondance (y compris votre mission et sa lettre) avec la chronologie, et demandez à Rashid ou Renat de faire des commentaires.
Comme je l'ai écrit plus tôt, ce n'est pas dans le montant (5feb.) et même pas dans l'artiste (enfin, pas calculé leur force, ça arrive), et dans le principe de collecte des amendes des modérateurs de la ressource. La sanction n'est pas imposée à l'auteur du crime, mais à celui qui est le plus commode.
Je ne peux pas inviter l'exécuteur testamentaire, s'il ne vient pas, alors il pense que c'est mieux, c'est son droit.
Voici le texte du RPT :
TERMES DE RÉFÉRENCE
La tâche consiste à créer un conseiller qui crée un graphique Renko dans le terminal de trading Metatrader 5, similaire en fonctionnalité à RenkoLiveChart_v3.2.mq4, utilisé dans le terminal de trading Metatrader 4.
Code source RenkoLiveChart_v3.2.mq4 :
//+---------------------------------------------------------------------------+
//| EA VERSION
//| RenkoLiveChart_v3.2.mq4
//| Inspiré du script Renko de "e4" (renko_live_scr.mq4)
//| Copyleft 2009 LastViking
//|
//| 12 août 2009 (LV) :
//| - Je voulais du volume dans mon graphique Renko alors j'ai écrit mon propre script.
//|
//| 20-21 août 2009 (LV) (v1.1 - v1.3) :
//| - Première tentative de formation de briques Renko en direct (bugs O bugs...)
//| - Correction d'un problème de noms de symboles étranges à certains 5 chiffres
//| brokers (crédit à Tigertron)
//|
//| 24 août 2009 (LV) (v1.4) :
//| - Traiter les hauts et les bas de l'histoire de manière raisonnable (prev.
//| utilisé Fermer)
//|
//| 26 Août 2009 (Lou G) (v1.5/v1.6) :
//| - Correction finale de l'"apparition tardive" (brique Renko en direct)
//| formation) bug
//|
//| 31 août 2009 (LV) (v2.0) :
//| - Ce n'est plus un script, mais il est exécuté en tant qu'indicateur.
//| - Suppression du bug MT4 qui provoquait le "bug d'apparition tardive".
//| un peu plus proche (a à voir avec les écarts Haut / Bas)
//| Suppression du while ... sleep() boucle. Le graphique Renko est maintenant tick
//| driven : -MUSH plus agréable pour les ressources du système de cette façon.
//|
//| 03 Sep 2009 (LV) (v2.1) :
//| - Fixé de façon à ce que Time[] contienne le temps d'ouverture du renko.
//| briques (heure de fermeture utilisée)
//|
//| 16 Sep 2009 (Lou G) (v3.0) :
//| - Mèches optionnelles ajoutées
//| - Conversion en EA
//| - Ajout de l'ajustement automatique pour les brokers 5 et 6 déc.
//| - entrez RenkoBoxSize en tant que taille "réelle", par ex. "10" pour 10 pips
//| - Ajout d'une compensation pour le problème de la "comparaison zéro".
//|
//| Okt 05 2009 (LV) (v3.1) :
//| - Correction d'un bug lié à BoxOffset
//| - Ajustement automatique pour les paires JPY à 3 et 4 déc.
//| - Suppression de la fonction init()
//| - Retour à l'ancien style de formation de briques Renko.
//|
//| Okt 13 2009 (LV) (v3.2) :
//| - Ajout de l'option "EmulateOnLineChart" (crédit à Skipperxit/Mimmo)
//|
//+---------------------------------------------------------------------------+
#property copyright ""
//+------------------------------------------------------------------+
#include <WinUser32.mqh>
#include <stdlib.mqh>
//+------------------------------------------------------------------+
#import "user32.dll"
int RegisterWindowMessageA(string lpString) ;
#import
//+------------------------------------------------------------------+
extern int RenkoBoxSize = 10 ;
extern intern RenkoBoxOffset = 0 ;
extern inttern RenkoTimeFrame = 2 ; // Quel cadre temporel utiliser pour le graphique Renko hors ligne ?
extern bool ShowWicks = true ;
extern bool EmulateOnLineChart = true ;
extern bool StrangeSymbolName = false ;
//+------------------------------------------------------------------+
int HstHandle = -1, LastFPos = 0, MT4InternalMsg = 0 ;
chaîne de caractères SymbolName ;
//+------------------------------------------------------------------+
void UpdateChartWindow() {
static int hwnd = 0 ;
si(hwnd == 0) {
hwnd = WindowHandle(SymbolName, RenkoTimeFrame) ;
if(hwnd != 0) Print("Fenêtre graphique détectée") ;
}
if(EmulateOnLineChart && MT4InternalMsg == 0)
MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message") ;
if(hwnd != 0) if(PostMessageA(hwnd, WM_COMMAND, 0x822c, 0) == 0) hwnd = 0 ;
if(hwnd != 0 && MT4InternalMsg != 0) PostMessageA(hwnd, MT4InternalMsg, 2, 1) ;
retour ;
}
//+------------------------------------------------------------------+
int start() {
statique double BoxPoints, UpWick, DnWick ;
statique double PrevLow, PrevHigh, PrevOpen, PrevClose, CurVolume, CurLow, CurHigh, CurOpen, CurClose ;
datetime statique PrevTime ;
//+------------------------------------------------------------------+
// Cette opération n'est exécutée qu'une seule fois, puis le premier tick arrive.
if(HstHandle < 0) {
// Init
// Vérification des erreurs
if(!IsConnected()) {
Print("Attente de la connexion...") ;
retour(0) ;
}
si(!IsDllsAllowed()) {
Print("Erreur : Les appels de Dll doivent être autorisés !") ;
retour(-1) ;
}
if(MathAbs(RenkoBoxOffset) >= RenkoBoxSize) {
Print("Erreur : |RenkoBoxOffset| doit être inférieur à RenkoBoxSize !") ;
retour(-1) ;
}
switch(RenkoTimeFrame) {
cas 1 : cas 5 : cas 15 : cas 30 : cas 60 : cas 240 :
cas 1440 : cas 10080 : cas 43200 : cas 0 :
Print("Error : Invald time frame used for offline renko chart (RenkoTimeFrame) !") ;
retour(-1) ;
}
//
int BoxSize = RenkoBoxSize ;
int BoxOffset = RenkoBoxOffset ;
if(Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1)) {
BoxSize = BoxSize*10 ;
BoxOffset = BoxOffset*10 ;
}
if(Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1)) {
BoxSize = BoxSize*100 ;
BoxOffset = BoxOffset*100 ;
}
if(StrangeSymbolName) SymbolName = StringSubstr(Symbol(), 0, 6) ;
autre SymbolName = Symbol() ;
BoxPoints = NormalizeDouble(BoxSize*Point, Digits) ;
PrevLow = NormalizeDouble(BoxOffset*Point + MathFloor(Close[Bars-1]/BoxPoints)*BoxPoints, Digits) ;
DnWick = PrevLow ;
PrevHigh = PrevLow + BoxPoints ;
PrevWick = PrevHigh ;
PrevOpen = PrevLow ;
PrevClose = PrevHigh ;
CurVolume = 1 ;
PrevTime = Time[Bars-1] ;
// créer / ouvrir le fichier hst
HstHandle = FileOpenHistory(SymbolName + RenkoTimeFrame + ".hst", FILE_BIN|FILE_WRITE) ;
if(HstHandle < 0) {
Print("Error : can\'t create / open history file : " + ErrorDescription(GetLastError()) + " : " + SymbolName + RenkoTimeFrame + ".hst") ;
retour(-1) ;
}
//
// écrire l'en-tête du fichier hst
int HstUnused[13] ;
FileWriteInteger(HstHandle, 400, LONG_VALUE) ; // Version
FileWriteString(HstHandle, "", 64) ; // FileWriteString(HstHandle, "", 64) ; // Version
FileWriteString(HstHandle, SymbolName, 12) ; // Symbole
FileWriteInteger(HstHandle, RenkoTimeFrame, LONG_VALUE) ; // Période
FileWriteInteger(HstHandle, Digits, LONG_VALUE) ; // Digits
FileWriteInteger(HstHandle, 0, LONG_VALUE) ; // Signe de temps
FileWriteInteger(HstHandle, 0, LONG_VALUE) ; // Dernière synchronisation
FileWriteArray(HstHandle, HstUnused, 0, 13) ; // Non utilisé
//
// traiter les données historiques
int i = Bars-2 ;
//Print(Symbol() + " + High[i] + " + Low[i] + " + Open[i] + " + Close[i]) ;
//---------------------------------------------------------------------------
while(i >= 0) {
CurVolume = CurVolume + Volume[i] ;
UpWick = MathMax(UpWick, High[i]) ;
DnWick = MathMin(DnWick, Low[i]) ;
// met à jour le bas avant le haut ou le renversement selon qu'il est le plus proche de la barre précédente.
bool UpTrend = High[i]+Low[i] > High[i+1]+Low[i+1] ;
while(UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints)) {
PrevHigh = PrevHigh - BoxPoints ;
PrevLow = PrevLow - BoxPoints ;
PrevOpen = PrevHigh ;
PrevClose = PrevLow ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ;
FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE) ;
if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE) ;
sinon FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ;
UpWick = 0 ;
DnWick = EMPTY_VALUE ;
CurVolume = 0 ;
CurHigh = PrevLow ;
CurLow = PrevLow ;
if(PrevTime < Time[i]) PrevTime = Time[i] ;
sinon PrevTime++ ;
}
while(High[i] > PrevHigh+BoxPoints || CompareDoubles(High[i], PrevHigh+BoxPoints)) {
PrevHigh = PrevHigh + BoxPoints ;
PrevLow = PrevLow + BoxPoints ;
PrevOpen = PrevLow ;
PrevClose = PrevHigh ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ;
FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE) ;
if(ShowWicks && DnWick < PrevLow) FileWriteDouble(HstHandle, DnWick, DOUBLE_VALUE) ;
sinon FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ;
UpWick = 0 ;
DnWick = EMPTY_VALUE ;
CurVolume = 0 ;
CurHigh = PrevHigh ;
CurLow = PrevHigh ;
if(PrevTime < Time[i]) PrevTime = Time[i] ;
sinon PrevTime++ ;
}
while(!UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints)) {
PrevHigh = PrevHigh - BoxPoints ;
PrevLow = PrevLow - BoxPoints ;
PrevOpen = PrevHigh ;
PrevClose = PrevLow ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ;
FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE) ;
if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE) ;
sinon FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ;
UpWick = 0 ;
DnWick = EMPTY_VALUE ;
CurVolume = 0 ;
CurHigh = PrevLow ;
CurLow = PrevLow ;
if(PrevTime < Time[i]) PrevTime = Time[i] ;
sinon PrevTime++ ;
}
i-- ;
}
LastFPos = FileTell(HstHandle) ; // Se souvenir de la dernière position dans le fichier
//
Comment("RenkoLiveChart(" + RenkoBoxSize + ") : Open Offline ", SymbolName, ",M", RenkoTimeFrame, " to view chart") ;
if(Close[0] > MathMax(PrevClose, PrevOpen)) CurOpen = MathMax(PrevClose, PrevOpen) ;
sinon si (Close[0] < MathMin(PrevClose, PrevOpen)) CurOpen = MathMin(PrevClose, PrevOpen) ;
else CurOpen = Close[0] ;
CurClose = Close[0] ;
if(UpWick > PrevHigh) CurHigh = UpWick ;
if(DnWick < PrevLow) CurLow = DnWick ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ; // Heure
FileWriteDouble(HstHandle, CurOpen, DOUBLE_VALUE) ; // Ouvrir
FileWriteDouble(HstHandle, CurLow, DOUBLE_VALUE) ; // Faible
FileWriteDouble(HstHandle, CurHigh, DOUBLE_VALUE) ; // Haute
FileWriteDouble(HstHandle, CurClose, DOUBLE_VALUE) ; // Fermer
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ; // Volume
FileFlush(HstHandle) ;
UpdateChartWindow() ;
retour(0) ;
// Fin des données historiques / Init
}
//----------------------------------------------------------------------------
// HstHandle n'est pas < 0 donc nous entrons toujours ici après que l'histoire soit terminée.
// Commencez le flux de données en direct
UpWick = MathMax(UpWick, Bid) ;
DnWick = MathMin(DnWick, Bid) ;
CurVolume++ ;
FileSeek(HstHandle, LastFPos, SEEK_SET) ;
//-------------------------------------------------------------------------
// boîte haute
if(Bid > PrevHigh+BoxPoints || CompareDoubles(Bid, PrevHigh+BoxPoints)) {
PrevHigh = PrevHigh + BoxPoints ;
PrevLow = PrevLow + BoxPoints ;
PrevOpen = PrevLow ;
PrevClose = PrevHigh ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ;
FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE) ;
if (ShowWicks && DnWick < PrevLow) FileWriteDouble(HstHandle, DnWick, DOUBLE_VALUE) ;
sinon FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ;
FileFlush(HstHandle) ;
LastFPos = FileTell(HstHandle) ; // Rappeler la dernière position dans le fichier
if(PrevTime < TimeCurrent()) PrevTime = TimeCurrent() ;
sinon PrevTime++ ;
CurVolume = 0 ;
CurHigh = PrevHigh ;
CurLow = PrevHigh ;
UpWick = 0 ;
DnWick = EMPTY_VALUE ;
UpdateChartWindow() ;
}
//-------------------------------------------------------------------------
// boîte basse
sinon si(Bid < PrevLow-BoxPoints || CompareDoubles(Bid,PrevLow-BoxPoints)) {
PrevHigh = PrevHigh - BoxPoints ;
PrevLow = PrevLow - BoxPoints ;
PrevOpen = PrevHigh ;
PrevClose = PrevLow ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ;
FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE) ;
if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE) ;
sinon FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE) ;
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ;
FileFlush(HstHandle) ;
LastFPos = FileTell(HstHandle) ; // Rappeler la dernière position dans le fichier
if(PrevTime < TimeCurrent()) PrevTime = TimeCurrent() ;
sinon PrevTime++ ;
CurVolume = 0 ;
CurHigh = PrevLow ;
CurLow = PrevLow ;
UpWick = 0 ;
DnWick = EMPTY_VALUE ;
UpdateChartWindow() ;
}
//-------------------------------------------------------------------------
// pas de boîte - high/low non atteint
else {
if(Bid > CurHigh) CurHigh = Bid ;
if(Bid < CurLow) CurLow = Bid ;
si(PrevHigh <= Bid) CurOpen = PrevHigh ;
else if(PrevLow >= Bid) CurOpen = PrevLow ;
else CurOpen = Bid ;
CurClose = Bid ;
FileWriteInteger(HstHandle, PrevTime, LONG_VALUE) ; // Heure
FileWriteDouble(HstHandle, CurOpen, DOUBLE_VALUE) ; // Ouvrir
FileWriteDouble(HstHandle, CurLow, DOUBLE_VALUE) ; // Faible
FileWriteDouble(HstHandle, CurHigh, DOUBLE_VALUE) ; // Haut
FileWriteDouble(HstHandle, CurClose, DOUBLE_VALUE) ; // Fermer
FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE) ; // Volume
FileFlush(HstHandle) ;
UpdateChartWindow() ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
int deinit() {
if(HstHandle >= 0) {
FileClose(HstHandle) ;
HstHandle = -1 ;
}
Commentaire (") ;
retour(0) ;
}
//+------------------------------------------------------------------+
Voici la RÉPONSE de l'EXÉCUTIF :
15794
Im_hungry 2013.11.25 17:25 #
Je peux commencer.
Mais je le ferai dans le courant de la semaine.
Suivant
Im_hungry 2013.11.26 07:59 #
Je vais juste le réécrire. Je vous enverrai la source et d'autres trucs.
Je vous l'enverrai.
Suivant :
Im_hungry 2013.11.26 08:33 #
Je pourrai commencer à travailler dessus demain.
Je ne pourrai commencer que demain. Je le ferai d'ici la fin de la semaine.
2013.11.26 10:25
Le développeur Im_hungry a confirmé l'étape "accord pour travailler"
Et pour compléter le tableau, faites venir un artiste ici.
Pour être honnête, si j'étais lui, je serais venu moi-même il y a longtemps, je vous aurais donné 5 $ et j'aurais dormi paisiblement.
Mais maintenant que nous avons commencé, allons-y. Publiez le texte complet de la correspondance (y compris votre tâche et sa lettre) avec une chronologie, et demandez à Rashid ou Renat de faire des commentaires.
Voilà la réponse, des lignes sont apparues, je ne peux pas les enlever, j'écris le prochain post.
Suivant
C'est votre tour.
En tant que TdR, joindre le code source de l'expert.
montant 100 temps 5.
Pour passer à l'étape suivante et commencer à travailler, vous devez disposer du montant spécifié sur votre compte (Profil - Paiements - rechargement).
Toutes les règles ici : https://www.mql5.com/ru/job/rules
ok.
Les fonds seront gelés jusqu'à ce que vous confirmiez l'étape "Paiement".
Après vérification et réception du code source. Si quoi que ce soit, il y a un arbitrage
à laquelle vous pourrez présenter une demande de remboursement.
2013.11.27 12:20 Le client kylinar2012 a confirmé l'étape "Accord de RPT". Le coût final des travaux est fixé à 100.00 crédits.
Mandat du client ci-joint
Le développeur Im_hungry a confirmé l'étape "Agree ToR". 100.00 crédits gelés sur le compte du client(kylinar2012)
2013.12.01 09:38
"Veuillez fermer la demande en faveur du client.TOR ne peut pas être mis en œuvre en raison de l'architecture MT5.Merci"
2013.12.02 11:28
À la suite de l'arbitrage, le travail a été annulé par l'administrateur de Rosh. Les fonds gelés de 95,00 crédits ont été restitués au client. L'interprète a été déplacé vers "Rejected".
C'est tout, puis un e-mail à moi :
Respectueusement, Alex.
Qu'est-ce qui est de ma faute ? Quelle est la sanction ? Je demande des commentaires à Rashid ou Renat.
J'ajouterai également qu'un tel EA est mis en œuvre ici :
https://www.mql5.com/ru/market/product/714#full_description
Seulement, il est un peu décalé pour moi car il utilise des indicateurs spécifiques (malheureusement).
Si j'avais pu mettre le mien, je ne me serais pas soucié de ce développement, mais je l'aurais acheté là-bas.
De quoi suis-je coupable ? Pourquoi suis-je condamné à une amende ? Je demande des commentaires à Rashid ou Renat.
Aucune correspondance avec d'autres candidats ?
Je suis de votre côté. Le commentaire de Rashid sera très intéressant.