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
Actuellement, les deux couleurs 1 et 2 sont noires sur le graphique !
Un gourou expert peut-il m'aider à résoudre ce problème ?
Merci d'avance !couleur Couleur1 ;
couleur Couleur2 ;
FerruFx
Quelqu'un peut-il m'expliquer comment me débarrasser du problème "OrderModify error 1" ? J'ai cherché et il semble que je doive utiliser NormalizeDouble(), mais j'ai tout normalisé d'ici à la lune et j'obtiens toujours l'erreur.
Une fois que j'aurai compris, je pense que je serai capable de le résoudre, s'il vous plaît, quelqu'un peut-il m'aider ?
J'obtiens également une erreur "unmatched data error(volume limit 31 at 2008.04.16 07:30 exceeded)" si quelqu'un sait de quoi il s'agit j'apprécierais l'aide.
couleur Couleur1 ;
couleur Color2 ;
FerruFxSetIndexStyle(0,DRAW_ARROW,0,star_size,color Color1) ;
SetIndexStyle(1,DRAW_ARROW,0,star_size,color Color2) ;
J'ai essayé d'insérer de la couleur partout, une étape et un essai à la fois, et soit j'obtiens une erreur pour les deux déclarations ci-dessus -')' - virgule ou point-virgule attendu soit je n'obtiens pas d'erreur, mais alors tout est noir.
Cela me perturbe vraiment. Avez-vous d'autres suggestions ?
Dave
@xerof123 - cette erreur se produit lorsque vous essayez de modifier un ordre avec les mêmes valeurs que l'ordre ouvert possède déjà. L'autre problème est la mauvaise concordance des prix entre les différentes échéances - pour vous en débarrasser, supprimez et régénérez toutes les données tick via le menu du centre d'historique.
@Dave137 - par où commencer, vous avez défini color1, color2 comme type string, alors que ceux-ci sont de type color. Notez que le mot-clé 'color1' dans la définition des 'propriétés' ne fait qu'attribuer une valeur, donc lorsque vous définissez ultérieurement color1, color2, ils pourraient tout aussi bien être appelés c1, c2. Notez également que vous n'avez pas besoin d'utiliser "properties color1" pour commencer, puisque vous les définissez manuellement dans la fonction init() de toute façon. Consultez également d'autres indicateurs pour savoir comment utiliser '#property indicator buffers x' et 'indicatorbuffers(x)'...
Merci omelette,
J'ai essayé tout ce que j'ai pu, cela fait maintenant 6 jours que j'y travaille sans relâche et il m'a battu...
S'il vous plaît, pouvez-vous regarder le code ici et me dire pourquoi j'obtiens le misérable "OrderModify error 1".
J'ai essayé de normaliser, j'ai essayé une logique différente, j'ai même essayé de lui offrir une bière.
J'apprécie vraiment votre aide. Merci
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
si(OrderType()<=OP_SELL) outotal++ ;
si(OrderType()==OP_BUY)
{
if(bep==true && Bid-OrderOpenPrice()>=Locked_at*Point)
{
if(OrderModify(OrderTicket(),0,OrderOpenPrice()+7*Point,0,0,0)==true) bep=false ;
return(0) ;
}
if((NormalizeDouble( Bid, Digits)-OrderOpenPrice())>=TS_start*Point)
{
si((NormalizeDouble( Bid, Digits)-NormalizeDouble( OrderStopLoss(), Digits)) > TS_start*Point &&
(NormalizeDouble( Bid, Digits)-NormalizeDouble( OrderStopLoss(), Digits) - TS_start*Point)>=(TrailEvery-1)*Point)
{
si (TS_start > OrderStopLoss()+Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(), Ask - Point*TS_start ,0,0,SkyBlue) ;
retour(0) ;
}
}
}
}
si(OrderType()==OP_SELL))
{
if(bep==true && OrderOpenPrice()-NormalizeDouble( Ask, Digits) >= Locked_at*Point)
{
if(OrderModify(OrderTicket(),0,OrderOpenPrice()-7*Point,0,0,0)==true) bep=false ;
return(0) ;
}
if((OrderOpenPrice()-NormalizeDouble( Ask, Digits)) >= TS_start*Point)
{
if((NormalizeDouble( OrderStopLoss(), Digits)-NormalizeDouble( Ask, Digits)) > TS_start*Point &&
(NormalizeDouble( OrderStopLoss(), Digits)-NormalizeDouble( Ask, Digits)-TS_start*Point)>=(TrailEvery-1)*Point)
{
si (TS_start > OrderStopLoss() +Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(), Ask + Point*TS_start ,0,0,Orange) ;
retour(0) ;
}
}
}
}
}
}
SetIndexStyle(0,DRAW_ARROW,0,star_size,color Color1) ;
SetIndexStyle(1,DRAW_ARROW,0,star_size,color Color2) ;
J'ai essayé d'insérer de la couleur un peu partout, une étape et un essai à la fois, et soit j'obtiens une erreur pour les deux déclarations ci-dessus -')' - virgule ou point-virgule attendu soit je n'obtiens pas d'erreur, mais alors tout est noir.
Cela me perturbe vraiment. Avez-vous d'autres suggestions ?
DaveNon, vous faites les mauvaises modifications.
Vous devez changer ceci :
string Couleur1 ;
string Color2 ;
par ceci :
couleur Color1 ;
couleur Couleur2 ;
C'est tout.
FerruFx
Comment puis-je faire en sorte que cet indicateur m'alerte lorsque la bougie touche la ligne supérieure ou inférieure et que la pente passe de la hausse à la baisse ou vice versa ?
#property copyright "ANG3110@latchess.com"
//----------------------------------
#property indicator_chart_window
//----------------------------------
extern int Hours=24 ;
extern color col=Aqua ;
//------------------
double lr,lr0,lrp ;
double sx,sy,sxy,sx2,aa,bb ;
int p,sName,fs ;
int f,f0,f1 ;
double dh,dl,dh_1,dl_1,dh_2,dl_2 ;
int ai_1,ai_2,bi_1,bi_2 ;
double hai,lai,dhi,dli,dhm,dlm,ha0,hap,la0,lap ;
double price_p1,price_p0,price_p2,price_01,price_00,price_02 ;
int p1,p0,p2,fp ;
//*****************************************
int init() {
p=Heures*60/Période() ;
if (fs==0) {sName=CurTime() ; fs=1;}
return(0);}
//*******************************
int deinit() {
ObjectDelete("1"+sName) ;
ObjectDelete("0"+sName) ;
ObjectDelete("2"+sName) ; }
//*******************************
int start() {
int i,n ;
//------------------------------------------------------------------------------
if (f==1) {
p1=iBarShift(Symbol(),Period(),ObjectGet("1"+sName,OBJPROP_TIME1)) ;
p0=iBarShift(Symbol(),Period(),ObjectGet("0"+sName,OBJPROP_TIME1)) ;
p2=iBarShift(Symbol(),Period(),ObjectGet("2"+sName,OBJPROP_TIME1)) ;
if (fp==0 && p!=p1) {p=p1 ; fp=1;}
if (fp==0 && p!=p0) {p=p0 ; fp=1;}
if (fp==0 && p!=p2) {p=p2 ; fp=1;}
}
//====================================================
sx=0 ; sy=0 ; sxy=0 ; sx2=0 ;
for (n=0 ; n<=p ; n++) {sx+=n ; sy+=Close[n] ; sxy+=n*Close[n] ; sx2+=MathPow(n,2);}
aa=(sx*sy-(p+1)*sxy)/(MathPow(sx,2)-(p+1)*sx2) ; bb=(sy-aa*sx)/(p+1) ;
//----------------------------------------------------
for (i=0 ; i<=p ; i++) {
lr=bb+aa*i ;
dh=High-lr ; dl=Low-lr ;
//----------------------------------------------------
if (i<p/2) {si (i==0) {dh_1=0.0 ; dl_1=0.0 ; ai_1=i ; bi_1=i;}
if (dh>=dh_1) {dh_1=dh ; ai_1=i;}
if (dl<=dl_1) {dl_1=dl ; bi_1=i;}}
//----------------------------------------------------
if (i>=p/2) {si (i==p/2) {dh_2=0.0 ; dl_2=0.0 ; ai_2=i ; bi_2=i;}
if (dh>=dh_2) {dh_2=dh ; ai_2=i;}
if (dl<=dl_2) {dl_2=dl ; bi_2=i;}}}
//-------------------------------------
lr0=bb ; lrp=bb+aa*(i+p) ;
//===================================================
si (MathAbs(ai_1-ai_2)>MathAbs(bi_1-bi_2)) f=1 ;
si (MathAbs(ai_1-ai_2)<MathAbs(bi_1-bi_2)) f=2 ;
si (MathAbs(ai_1-ai_2)==MathAbs(bi_1-bi_2)) {si (MathAbs(dh_1-dh_2)=MathAbs(dl_1-dl_2)) f=2;}
//=================================================
if (f==1) {
for (n=0 ; n<=20 ; n++) { f1=0 ;
for (i=0 ; i<=p ; i++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1) ;
si (i==0 || i==p/2) dhm=0.0 ;
si (High-hai>dhm && i<p/2) {ai_1=i ; f1=1;}
si (High-hai>dhm && i>=p/2) {ai_2=i ; f1=1;} }
si (f==0) break;}
//----------------------------
for (i=0 ; i<=p ; i++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1) ;
dli=Low-hai ;
if (i==0) dlm=0.0 ; if (dli<dlm) dlm=dli;}
ha0=High[ai_1]*(0-ai_2)/(ai_1-ai_2)+High[ai_2]*(0-ai_1)/(ai_2-ai_1);
hap=High[ai_1]*(p-ai_2)/(ai_1-ai_2)+High[ai_2]*(p-ai_1)/(ai_2-ai_1);
//----------------------------
prix_p1=hap ;
prix_p0=hap+dlm/2 ;
prix_p2=hap+dlm ;
prix_01=ha0 ;
prix_00=ha0+dlm/2 ;
prix_02=ha0+dlm ;
}
//=================================================
if (f==2) {
for (n=0 ; n<=20 ; n++) {f1=0 ;
for (i=0 ; i<=p ; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1) ;
si (i==0 || i==p/2) dlm=0.0 ;
si (Low-lai<dlm && i<p/2) {bi_1=i ; f1=1;}
si (Low-lai=p/2) {bi_2=i ; f1=1;}}
si (f==0) break;}
//----------------------------
for (i=0 ; i<=p ; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1) ;
dhi=High-lai ;
if (i==0) dhm=0.0 ; if (dhi>dhm) dhm=dhi;}
la0=Low*(0-bi_2)/(bi_1-bi_2)+Low*(0-bi_1)/(bi_2-bi_1);
lap=Low*(p-bi_2)/(bi_1-bi_2)+Low*(p-bi_1)/(bi_2-bi_1);
//----------------------------------------------------------------
prix_p1=lap ;
prix_p0=lap+dhm/2 ;
prix_p2=lap+dhm ;
prix_01=la0 ;
prix_00=la0+dhm/2 ;
price_02=la0+dhm ;
}
//===================================================================================
ObjectCreate("1"+sName,2, 0,Time[p],price_p1,Time[0],price_01) ;
ObjectCreate("0"+sName,2, 0,Time[p],price_p0,Time[0],price_00) ;
ObjectCreate("2"+sName,2, 0,Time[p],price_p2,Time[0],price_02) ;
//-----------------------------------------------------------------
ObjectSet("1"+sName,OBJPROP_COLOR,col) ;
ObjectSet("1"+sName,OBJPROP_STYLE,STYLE_SOLID) ;
ObjectSet("0"+sName,OBJPROP_COLOR,col) ;
ObjectSet("0"+sName,OBJPROP_STYLE,STYLE_DOT) ;
ObjectSet("2"+sName,OBJPROP_COLOR,col) ;
ObjectSet("2"+sName,OBJPROP_STYLE,STYLE_SOLID) ;
ObjectSet("0"+sName,OBJPROP_WIDTH,1) ; // contrôle la largeur de la ligne
ObjectSet("1"+sName,OBJPROP_WIDTH,2) ;
ObjectSet("2"+sName,OBJPROP_WIDTH,2) ;
//---------------------------------------------
ObjectSet("1"+sName,OBJPROP_TIME1,Time[p]) ;
ObjectSet("1"+sName,OBJPROP_PRICE1,price_p1) ;
ObjectSet("1"+sName,OBJPROP_TIME2,Time[0]) ;
ObjectSet("1"+sName,OBJPROP_PRICE2,price_01) ;
ObjectSet("0"+sName,OBJPROP_TIME1,Time[p]) ;
ObjectSet("0"+sName,OBJPROP_PRICE1,price_p0) ;
ObjectSet("0"+sName,OBJPROP_TIME2,Time[0]) ;
ObjectSet("0"+sName,OBJPROP_PRICE2,price_00) ;
ObjectSet("2"+sName,OBJPROP_TIME1,Time[p]) ;
ObjectSet("2"+sName,OBJPROP_PRICE1,price_p2) ;
ObjectSet("2"+sName,OBJPROP_TIME2,Time[0]) ;
ObjectSet("2"+sName,OBJPROP_PRICE2,price_02) ;
//==================================================================
f=1 ; p1=p ; p0=p ; p2=p ; fp=0 ;
//*************************************************************************************
return(0);}
//=====================================================================================
Merci omelette,
J'ai essayé tout ce que j'ai pu, cela fait maintenant 6 jours que j'y travaille sans relâche et il m'a battu...
S'il vous plaît, pouvez-vous regarder le code ici et me dire pourquoi j'obtiens le misérable "OrderModify error 1".
J'ai essayé de normaliser, j'ai essayé une logique différente, j'ai même essayé de lui offrir une bière.
J'apprécie vraiment votre aide. MerciRelisez ce que j'ai écrit - vous appelez la fonction Modify() sans vérifier d'abord si le(s) prix doivent être modifiés...
omelette a très bien répondu à votre question. Je dois dire que ce type a la patience d'un saint, je le félicite.
Pour mieux illustrer son propos, que dire de ceci.
Ce que vous êtes en train de dire, c'est que si 2 > 1, alors modifiez (changez) X=2, mais le problème que vous rencontrez est que X est déjà égal à 2, donc demander de le modifier (changer) est incorrect car il est déjà égal à ce que vous essayez de modifier.
Vous devez simplement vérifier qu'il n'est pas égal à ce que vous essayez de modifier et n'essayer de le modifier que si ce n'est pas le cas.
Est-ce plus clair ?
Bonne chance
Lux
Première fois que j'utilise EA, j'ai besoin d'aide.
Cher codersguru,
J'ai copié le fichier .mql4 dans le dossier expert et j'ai activé l'Auto trading dans la section Option, mais lorsque je fais le back test il ne génère aucun trade. J'ai essayé quelques EAs gratuits sur le net, le problème s'est produit à chaque fois. Je peux voir que les données du back test ont été chargées dans le graphique, mais pas de transaction, donc dans le rapport tous les chiffres sont 0. Je dois avoir fait quelque chose de mal, j'espère que vous pouvez m'aider. Merci d'avance.
Merci d'avance,
jzhai1994