[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 964
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
Pourquoi la vitesse du testeur diminue-t-elle vers la fin de la troisième année ?
il y a un tel problème - j'ai eu ce problème aussi, si le conseiller expert fait beaucoup de transactions par an - peut-être que beaucoup de données sont stockées pour l'affichage du résultat final ou peut-être que les tampons de l'indicateur consomment de la mémoire
pour l'ensemble de la scie - je ne sais pas, soyez indulgent avec moi - pour la vue d'ensemble, le test pour 10 ans, et il est préférable d'optimiser une année à la fois et ensuite faire une sélection des paramètres optimaux
Je veux analyser différents croisements puis passer des ordres sur une autre paire :
int magic = 428;//numéro magique de l'Expert Advisor
extern double volume = 0.1;//volume de l'ordre passé
extern int slippage = 3;//slippage
int OPB;//la marque de l'ordre d'achat
int OPS;//le marquage de l'ordre de vente
int Profit=1;//niveau de profit de l'ordre ouvert
string comB = "Entrée dans la tendance à l'achat ; // commentaire sur l'ordre
string comS = "Entrée par tendance à vendre";// commentaire d'ordre
double StochasticCAD;//position de la ligne stochastique principale sur la barre courante sur USDCAD
double StochasticAUD;//position de la ligne stochastique principale sur la barre actuelle pour AUDUSD
double SARCAD;//position de l'indicateur actuel sur USDCAD
double SARCAD;//position de la barre d'indicateur de retour sur USDCAD
double SARAUD;//position actuelle de l'indicateur sur AUDUSD
double SARСAUD;//position de la barre d'indicateur de retour sur AUDUSD
int start()
{
//______________________________определение значений переменных_______________________
StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0) ;
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0) ;
SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
double bidCAD =MarketInfo("USDCAD",MODE_BID) ;
double askCAD =MarketInfo("USDCAD",MODE_ASK) ;
double bidAUD =MarketInfo("AUDUSD",MODE_BID) ;
double askAUD =MarketInfo("AUDUSD",MODE_ASK) ;
//______________________________поиск и закрытие ордеров_______________________________________
int i ;
for(i=0 ; i<=OrdersTotal() ; i++)
{
si(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
break;// si le numéro de commande i n'existe pas, arrêter la recherche
if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // si l'ordre ne provient pas de la paire où se trouve notre EA
continuez ; // sautez la commande et regardez la prochaine commande qui la suit
//_______close Buy_______
si (OrderType() == OP_BUY && OrderProfit()>=Profit)
// si la commande est Acheter
{
OPB=1 ;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//et le marché est sur le point de s'inverser
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat) ; // le fermer s'il est en bénéfice
OPB=0 ;
}
}
sinon
{
//_______close Vendre_______
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// si l'ordre est vendu
{OPS=1 ;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//et le marché est proche du renversement de tendance
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise) ; // fermez-le s'il est en profit.
OPS=0 ;
}
}
}
}
//______________выставление ордеров______________________________________________________________________
if (SARCAD>askCAD && SARCAD<bidCAD && SARAUD<bidAUD && SARCAUD>askAUD && OPB<1)//définir les conditions
{ //_______Buy_______
if(!IsTradeAllowed())
{
Alert("le fil de discussion est occupé, essayez à nouveau d'acheter...") ;
retour(-1) ;
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red) ; //définir un ordre
si(OPB == -1)
{
Alert("GBPUSD", "Error : buy", GetLastError()) ;
retour(-1) ;
}
si(OPB > 1)
Alert("GBPUSD", "Nous avons un ordre d'achat !)
}
sinon
{//_______Sell_______
if(SARCAD>askCAD && SARCAD<bidCAD && SARCADAUD<bidAUD && SARAUD>askAUD && OPS<1)//définir les conditions
{
if(!IsTradeAllowed())
{
Alert("le fil de discussion est occupé, essayez à nouveau de vendre...") ;
retour (-1) ;
}
OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue) ; //définir un ordre
si(OPS == -1)
{
Alert("GBPUSD", "Error : Sell", GetLastError()) ;
retour (-1) ;
}
si(OPS > 1)
Alert("GBPUSD", "Ordre de vente put !)
}
}
return(0);//sortir
}
Rien ne sort quand je le teste. Aucun résultat.
Dans le journal, il y a une série d'erreurs :
Pouvez-vous me dire ce qui ne va pas ?
Je veux analyser différents croisements et ensuite passer des ordres sur une autre paire :
int magic = 428;//numéro magique de l'Expert Advisor
extern double volume = 0.1;//volume de l'ordre placé
extern int slippage = 3;//slippage
int OPB;//étiquette de l'ordre d'achat placé
int OPS;//étiquette de l'ordre de vente placé
int Profit=1;//niveau de profit des ordres ouverts
string comB = "Entrée par tendance à l'achat" ; //demande d'ordre
string comS = "Entrée par tendance à la vente" ; //demande d'ordre
double StochasticCAD ;//position de la ligne principale de la Stochastique sur la barre actuelle de l'USDCAD
double StochasticAUD;//position de la ligne principale de la Stochastique sur la barre actuelle de l'AUDUSD
double SARCAD;//position actuelle de l'indicateur sur l'USDCAD
double SARCAD;//position de la barre de l'indicateur sur l'USDCAD
double SARAUD;//position actuelle de l'indicateur sur l'AUDUSD
double SARAUD;//position de la barre de l'indicateur sur l'AUDUSD
int start()
{{
//______________________________ détermination des valeurs des variables_______________________
StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0) ;
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0) ;
SARCAD=iSAR("USDCAD",30,002,0.2,0) ;
SARCAD=iSAR("USDCAD",30,0.02,0.2,1) ;
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0) ;
SARAUD=iSAR("AUDUSD",30,0.02,0.2,1) ;
double bidCAD =MarketInfo("USDCAD",MODE_BID) ;
double askCAD =MarketInfo("USDCAD",MODE_ASK) ;
double bidAUD =MarketInfo("AUDUSD",MODE_BID) ;
double askAUD =MarketInfo("AUDUSD",MODE_ASK) ;
//______________________________ ordres de recherche et de clôture_______________________________________
int i ;
for(i=0 ; i<=OrdersTotal() ; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
break;// si le numéro d'ordre i n'existe pas, arrêter la recherche
if (OrderSymbol() !="GBPUSD" || OrderMagicNumber() != magic) // si l'ordre ne provient pas de la paire où se trouve notre Expert Advisor
continuer ; // sauter cet ordre et regarder l'ordre qui le suit
//_______close Buy_______
if (OrderType() == OP_BUY && OrderProfit()>=Profit)
// si l'ordre est BUY
{
OPB=1 ;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//et le marché est proche du retournement
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat) ; // le fermer s'il est BUY
OPB=0 ;
}
}
else
{
//_______close Sell_______
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// si l'ordre est Sell
{OPS=1 ;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//et le marché est proche d'un retournement
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise) ; // le fermer s'il est en profit
OPS=0 ;
}
}
}
}
//______________ passation de commande ______________________________________________________________________
if (SARCAD>askCAD && SARCAD<bidCAD && SARAUD<bidAUD && SARAUD>askAUD && OPB<1)// définir les conditions
{ //_______Buy_______
if(!IsTradeAllowed())
{
Alert("le fil de discussion est occupé, essayez à nouveau d'acheter...") ;
return(-1) ;
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red) ; //définir l'ordre
if(OPB == -1)
{
Alert("GBPUSD", "error : buy", GetLastError()) ;
return(-1) ;
}
if(OPB > 1)
Alert ("GBPUSD", "Put Buy Order !") ;
}
else
{//_______Sell_______
if(SARCAD>askCAD && SARCAD<bidCAD && SARCAD<bidAUD && SARAUD>askAUD && OPS<1)//definir les conditions
{
if(!IsTradeAllowed())
{
Alert("le fil de discussion est occupé, essayez à nouveau de vendre...") ;
return(-1) ;
}
OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue) ; //définir l'ordre
if(OPS == -1)
{
Alert("GBPUSD", "error : sell", GetLastError()) ;
return(-1) ;
}
if(OPS > 1)
Alert ("GBPUSD", "Put Sell order !") ;
}
}
return(0);//sortir
}
Rien ne sort quand on le teste. Il ne produit aucun résultat.
Il y a une série d'erreurs dans le journal :
Pouvez-vous me dire ce qui ne va pas ?
Tout d'abord, apprenez à insérer un code dans la fenêtre en appuyant simultanément sur "Counterclick + Alt + M", afin que dans votre halimatry les gens naviguent et donnent des recommandations.
Essayez également de double-cliquer sur le message d'erreur correspondant dans le journal - peut-être cela mènera-t-il à une réflexion...
Tout d'abord, apprenez à insérer du code dans une fenêtre en appuyant simultanément sur les touches "Conrle + Alt + M", afin de pouvoir guider les gens dans vos bêtises et leur faire des recommandations.
Essayez également de double-cliquer sur le message d'erreur correspondant dans le journal de bord - cela vous donnera peut-être des idées...
Les erreurs sont dans le journal du testeur, pas dans celui du compilateur... (vous pouvez en fait le voir sur la photo si vous la regardez d'abord et la commentez ensuite...). Un double-clic n'y fait rien...
Un test sur tous les tics ? Problèmes d'histoire
Un test sur tous les tics ? Problèmes d'histoire
Doit-on recharger l'historique pour toutes les paires impliquées dans l'analyse ?
C'est-à-dire que vous devez recharger l'historique pour toutes les paires impliquées dans l'analyse ?
Peut-être. Si bien sûr la société de courtage le supporte.
Mais il ne faut pas oublier que vous pouvez ouvrir des positions dans le testeur pour le symbole actuel, et qu'il existe certaines restrictions pour les autres symboles
C'est possible. Si bien sûr la société de courtage le supporte.
Gardez à l'esprit que dans le testeur, vous ne pouvez ouvrir des positions que sur l'instrument en cours, et qu'il existe certaines restrictions pour les autres instruments.
Qu'est-ce qu'un DC ? Et quelles sont les restrictions sur les autres instruments ?
Qu'est-ce qu'une société de courtage ? Et quelles sont les limites des autres symboles ?
DC - Dealing Desk
Dans le testeur pour les autres instruments, vous ne pouvez obtenir que le prix d'ouverture sur la barre zéro, les ticks pour les autres instruments ne sont pas modélisés, l'environnement de marché est pratiquement indisponible.
Les transactions sur d'autres instruments ne sont pas ouvertes.
Si vous devez effectuer correctement une analyse multidevises, il est préférable d'utiliser MT5. Il existe un testeur multi-devises.