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
J'ai lu ce fil de discussion du début à la fin pour essayer de trouver une solution.
Cyberia Trader1.85g jpy.mq4 version Je l'ai chargé et j'ai le visage mais je n'ai eu aucun ordre du tout. J'utilise la paire USD/CHF sur 30 minutes. Le fait de ne pas avoir d'ordres rend vraiment difficile tout test préalable. Le système fonctionne depuis 4 jours et toujours pas d'ordres.
Une aide serait la bienvenue, merci.
merci
BenoJe vous aiderais si je savais comment faire mieux que 70% mais je ne le fais pas. Je fonctionne sur le graphique d'une heure, essayez cela.
Merci pour ce bout de code. Je l'ai regardé et je peux voir qu'il crée et lit des fichiers. Je ne le vois pas ajouter quoi que ce soit à la fin d'un fichier qu'il a déjà créé. Peut-être que c'est le cas et que je ne le vois pas et peut-être qu'il ne le fait pas et qu'il n'y a rien à voir. J'aimerais connaître un morceau de code qui ajouterait des données à la fin pour pouvoir voir comment il le fait.
Jetez un coup d'œil à ce fil :
https://www.mql5.com/en/forum/175496
J'ai beaucoup travaillé sur ce code et je l'ai laissé plutôt en désordre... mais...
mes efforts pour que cela s'imprime dans un fichier se sont avérés infructueux pour le moment.
Je suppose que je vais demander à ceux qui veulent aider à la collecte de données de tenter de le faire manuellement.
J'ai configuré l'EA ci-joint pour imprimer dans le journal les logiques minimales du CT. Il ne s'agit pas de saisir des indicateurs, mais peut-être que le simple fait de regarder les logiques des TC nous donnera quelque chose sur quoi travailler.
Pour recueillir ces données, vous devez exécuter l'EA dans le backtester tel qu'il est, mais pendant qu'il fonctionne, vous devez surveiller l'onglet journal. Puisque le journal ne peut pas contenir plus que les données de quelques ordres sans commencer à tronquer et à laisser tomber les données de l'extrémité inférieure. vous devrez arrêter le test très rapidement lorsque vous atteignez environ tous les 5 - 7 ordres successifs. Ensuite, copiez et collez les données dans un bloc-notes et redémarrez le testeur en regardant quand il arrive à l'endroit où vous avez fait le copier/coller précédent. Vous devez faire attention à capturer toutes les données lorsque vous collez, ce qui ressemble à ceci pour un ordre...
2006.11.10 10:22:52 2004.03.05 03:02 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Recorded Winning Long 56 Opened: 1.2188 Closed: 1.221
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Ticket: 56 DV: -0.0051 CCI: 57.9346 Long order is opened @: 1.2188 StopLoss= 1.2171 TakeProfit= 1.2285
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Buy @ Minute 40
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: open #56 buy 0.42 EURUSDm at 1.2188 sl: 1.2171 tp: 1.2285 ok
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityMid:0.0004
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityMid:0.0004
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityMid:0.0009
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuySucPossibilityMid:0.002
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellSucPossibilityMid:0.0021
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedSucPossibilityMid:0.0021
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityQuality:8
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityQuality:8
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityQuality:19
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuySucPossibilityQuality:7
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellSucPossibilityQuality:7
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedSucPossibilityQuality:14
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityMid*UndefinedPossibilityQuality:0.0164
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityMid*BuyPossibilityQuality:0.0032
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityMid*SellPossibilityQuality:0.0034
2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Hour: 18 Minute: 40
exécutez ceci sur un graphique d'une heure et capturez les données. puis envoyez-moi le fichier .txt notepad par email peut-être si islandhome commençait au premier ordre et faisait les 500 premières transactions de 2005 et AZBOfin commençait avec la transaction 500 de 2005 et faisait les 500 suivantes ?
ah ! bollay that. let me try what coder's guru just posted.
Jetez un œil à ce fil de discussion :https://www.mql5.com/en/forum/175496
Vous venez peut-être de m'épargner beaucoup d'ennuis...
Pourriez-vous regarder l'EA que j'ai posté et voir où j'essaie d'imprimer au fichier à 4 endroits dans le code. Deux fois quand il ouvre des ordres et ensuite dans des fonctions séparées quand il ferme des ordres. Vous voyez ce que j'essaie d'extraire de tout cela ? Pourriez-vous m'aider à coder ceci de façon à ce qu'il enregistre les informations de chaque ordre, la logique du programme quand il s'ouvre et le résultat quand l'ordre se ferme ?
Si je fais ce fileflush après chaque commande, cela effacera-t-il quelque chose ? Je ne comprends toujours pas le fonctionnement de la purge.
Eureka ! Oh mec, merci au gourou du codeur, joli sauvetage !
Maintenant, je suis toujours un peu perplexe ici ... remarquez le fichier .txt, il n'imprime pas une ligne de résultat pour chaque ordre. pourquoi il saute cela pour certains ordres, je me demande ?
Puis-je supposer que s'il n'imprime pas la ligne de résultat, c'est qu'il s'agit d'une position perdante ?
Vous ne serez jamais en mesure de déchiffrer ces données dans ce format, vous avez besoin d'être en rangées, essayez d'incorporer ceux-ci.
J'ai toujours un problème avec le système qui dit qu'il y a trop de fichiers ouverts... mais voici la façon dont votre fichier doit être formaté pour que vous puissiez le visualiser dans Excel.
//LOGIC FOR HEADER OF FILE - creates the header labels for the rows in the CSV file
string fileName = Symbol() + "-" + TimeToStr(LocalTime(), TIME_DATE) + " " + TimeHour(LocalTime()) + "-" + TimeMinute(LocalTime()) + ".csv";
File = FileOpen(fileName, FILE_CSV|FILE_WRITE, ',');
if (FileWrite(File, Symbol(),"DATETIME","Lots","Bid","SlipPage","StopLoss","TakeProfit","MagicNumber",
"SellPossibilityMid*SellPossibilityQuality",
"BuyPossibilityMid*BuyPossibilityQuality",
"UndefinedPossibilityMid*UndefinedPossibilityQuality",
"UndefinedSucPossibilityQuality",
"SellSucPossibilityQuality",
"BuySucPossibilityQuality",
"UndefinedPossibilityQuality",
"SellPossibilityQuality",
"BuyPossibilityQuality",
"UndefinedSucPossibilityMid",
"SellSucPossibilityMid",
"BuySucPossibilityMid",
"UndefinedPossibilityMid",
"SellPossibilityMid",
"BuyPossibilityMid",
"Decision" ) < 0)
{
PrintError();
return (Error);
}
//LOGIC FOR APPEND OF FILEWRITE - Writes the rows of data
//Record statistics at time of Order - Added by DudeWorks
void RecordTickets ()
{
if (Error > 0)
return (Error); //stop on error
FileSeek(File,0,SEEK_END);
if (FileWrite(File, Symbol(),TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),Lots,Bid,SlipPage,StopLoss,TakeProfit,MagicNumber,
SellPossibilityMid*SellPossibilityQuality,
BuyPossibilityMid*BuyPossibilityQuality,
UndefinedPossibilityMid*UndefinedPossibilityQuality,
UndefinedSucPossibilityQuality,
SellSucPossibilityQuality,
BuySucPossibilityQuality,
UndefinedPossibilityQuality,
SellPossibilityQuality,
BuyPossibilityQuality,
UndefinedSucPossibilityMid,
SellSucPossibilityMid,
BuySucPossibilityMid,
UndefinedPossibilityMid,
SellPossibilityMid,
BuyPossibilityMid,
Decision) < 0)
{
PrintError();
return (Error);
}
FileFlush(File);
return(0);
}
Vous ne serez jamais capable de déchiffrer ces données dans ce format, vous avez besoin qu'elles soient en lignes, essayez d'incorporer celles-ci.
J'ai toujours un problème avec le système qui me dit qu'il y a trop de fichiers ouverts... mais voici comment votre formulaire doit être formaté pour que vous puissiez le visualiser dans Excel.
//LOGIC FOR HEADER OF FILE - creates the header labels for the rows in the CSV file
string fileName = Symbol() + "-" + TimeToStr(LocalTime(), TIME_DATE) + " " + TimeHour(LocalTime()) + "-" + TimeMinute(LocalTime()) + ".csv";
File = FileOpen(fileName, FILE_CSV|FILE_WRITE, ',');
if (FileWrite(File, Symbol(),"DATETIME","Lots","Bid","SlipPage","StopLoss","TakeProfit","MagicNumber",
"SellPossibilityMid*SellPossibilityQuality",
"BuyPossibilityMid*BuyPossibilityQuality",
"UndefinedPossibilityMid*UndefinedPossibilityQuality",
"UndefinedSucPossibilityQuality",
"SellSucPossibilityQuality",
"BuySucPossibilityQuality",
"UndefinedPossibilityQuality",
"SellPossibilityQuality",
"BuyPossibilityQuality",
"UndefinedSucPossibilityMid",
"SellSucPossibilityMid",
"BuySucPossibilityMid",
"UndefinedPossibilityMid",
"SellPossibilityMid",
"BuyPossibilityMid",
"Decision" ) < 0)
{
PrintError();
return (Error);
}
//LOGIC FOR APPEND OF FILEWRITE - Writes the rows of data
//Record statistics at time of Order - Added by DudeWorks
void RecordTickets ()
{
if (Error > 0)
return (Error); //stop on error
FileSeek(File,0,SEEK_END);
if (FileWrite(File, Symbol(),TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),Lots,Bid,SlipPage,StopLoss,TakeProfit,MagicNumber,
SellPossibilityMid*SellPossibilityQuality,
BuyPossibilityMid*BuyPossibilityQuality,
UndefinedPossibilityMid*UndefinedPossibilityQuality,
UndefinedSucPossibilityQuality,
SellSucPossibilityQuality,
BuySucPossibilityQuality,
UndefinedPossibilityQuality,
SellPossibilityQuality,
BuyPossibilityQuality,
UndefinedSucPossibilityMid,
SellSucPossibilityMid,
BuySucPossibilityMid,
UndefinedPossibilityMid,
SellPossibilityMid,
BuyPossibilityMid,
Decision) < 0)
{
PrintError();
return (Error);
}
FileFlush(File);
return(0);
}
ce n'est pas un problème pour moi.
La fonction d'importation de données externes d'Excel les place dans des lignes de façon très agréable. Dites-lui simplement qu'elles sont délimitées par des " ;" Le défi que j'aimerais relever avec le formatage est qu'il n'imprime pas une ligne de résultat pour les positions perdantes. Cela signifie que les données dans les lignes ne sont pas les mêmes pour chaque ordre, ce qui rend difficile la conception d'un identifiant qui reconnaît les entrées perdantes. Pour l'instant, je peux séparer les données gagnantes du reste, peut-être que c'est suffisant, je pense que je peux travailler avec ce que j'ai, mais je n'ai pas encore de données d'indicateur dans ce domaine.
Regardez ça... J'ai donné à cette chose sa propre fonction pour sauvegarder la ligne de résultat de la transaction perdante et elle ne veut toujours pas imprimer la ligne ???? oy, allez, une ligne, c'est trop demander ?
{
//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(OrderOpenPrice() + Spread >= OrderClosePrice())
{
datetime blorderOpen=OrderOpenTime();
handle = FileOpen("Cyberia.txt",FILE_READ|FILE_WRITE);
if(handle!=-1)
{
FileSeek(handle,0,SEEK_END);
FileWrite(handle,"Losing Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",blorderOpen);
FileWrite(handle," ");
Print("Recorded Losing Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
FileFlush(handle);
FileClose(handle);
}
else
{
int err1;
err1=GetLastError();
Print("error(",err1,"): ",ErrorDescription(err1));
return(0);
}
}//if win or lose
}//if buy
}//if symbol and magic number
return (0);
}//record long outcomes[/PHP]
what gives???
see this? this works fine...
[PHP]void RecordLongOutcomes()
{
//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(OrderOpenPrice() + Spread < OrderClosePrice())
{
datetime borderOpen=OrderOpenTime();
handle = FileOpen("Cyberia.txt",FILE_READ|FILE_WRITE);
if(handle!=-1)
{
FileSeek(handle,0,SEEK_END);
FileWrite(handle,"Winning Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);
FileWrite(handle," ");
Print("Recorded Winning Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
FileFlush(handle);
FileClose(handle);
}
else
{
int err;
err=GetLastError();
Print("error(",err,"): ",ErrorDescription(err));
//return(0);
}
}//if win or lose
}//if buy
}//if symbol and magic number
RecordLongLOutcomes();
return (0);
}//record long outcomesC'est le même code ! (pratiquement) Ce langage mql est étonnamment capricieux !
Bonjour Aaragorn
S'il vous plaît télécharger le meilleur fichier d'ensemble
pour cyber
tnx
bye
Bonjour Aaragorn
Veuillez télécharger le meilleur fichier d'ensemble
pour cyber
tnx
byec'est dans ce...
https://www.mql5.com/en/forum/174700/page71