[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 984

 
gyvenor:

Merci.

Est-il possible d'ajouter des colonnes avec une valeur d'indicateur à ce tableau ? Par exemple, la valeur MA sur une barre donnée. Ou y a-t-il une fractale haut/bas ?

Vous pouvez faire MA et fractale dans Excel même, coller la formule dans la cellule.
 

Bonjour. Pouvez-vous me dire s'il existe un historique des transactions de L.Williams accessible au public depuis sa légendaire victoire aux championnats de 1987 ? Il serait intéressant d'y jeter un coup d'œil).

 
Techno:
Joignez un rapport approprié. Mieux encore, un rapport complet, vous verrez.

Symbole EURUSD (Euro contre Dollar US)
Période 30 Minutes (M30) 1999.01.06 15:30 - 2010.11.09 21:59
Modèle Par les prix d'ouverture (seulement pour les Expert Advisors avec un contrôle explicite de l'ouverture des barres)
Paramètres
Les bars dans l'histoire 143757 Tiques modélisées 287336 Qualité de la simulation s/o
Erreurs de concordance des graphiques 0
Dépôt initial 1000000.00
Bénéfice net 23885.09 Bénéfice total 50787.58 Perte totale -26902.49
Rentabilité 1.89 Gain attendu 2.66
Dégradation absolue 73.00 Abaissement maximal 355.90 (0.03%) Abattement relatif 0.03% (355.90)
Total des transactions 8996 Positions courtes (% de gain) 0 (0.00%) Positions longues (% de gain) 8996 (87.36%)
Transactions rentables (% de toutes) 7859 (87.36%) Transactions à perte (% de toutes) 1137 (12.64%)
Le plus grand commerce profitable 10.50 accord perdant -40.40
Moyenne opération rentable 6.46 Perte de marché -23.66
Maximum gains continus (profit) 110 (730.00) Pertes continues (perte) 5 (-125.00)
Maximum Profit continu (nombre de victoires) 730.00 (110) Perte continue (nombre de pertes) -125.00 (5)
Moyenne gains continus 9 Perte continue 1
Graphique
Temps Type Commandez Volume Prix S / L T / P
 

La différence entre M1 tous tics et M30 est minime.

Symbole EURUSD (Euro contre Dollar US)
Période 1 Minute (M1) 1999.10.01 03:17 - 2010.11.09 21:06
Modèle Tous les ticks (méthode la plus précise basée sur toutes les plus petites échéances disponibles)
Paramètres
Les bars dans l'histoire 3798097 Tiques modélisées 37584894 Qualité de la modélisation 25.00%
Erreurs de concordance des graphiques 0
Dépôt initial 1000000.00
Bénéfice net 19436.09 Bénéfice total 42746.64 Perte totale -23310.55
Rentabilité 1.83 Gain attendu 2.57
Dégradation absolue 6.00 Abaissement maximal 254.80 (0.03%) Abattement relatif 0.03% (254.80)
Total des transactions 7566 Positions courtes (% de gain) 0 (0.00%) Positions longues (% de gain) 7566 (87.09%)
Transactions rentables (% de toutes) 6589 (87.09%) Transactions à perte (% de toutes) 977 (12.91%)
Le plus grand commerce profitable 10.50 transaction perdante -40.40
Moyenne opération rentable 6.49 Perte de marché -23.86
Maximum gains continus (profit) 62 (410.00) Pertes continues (perte) 5 (-125.00)
Maximum Profit continu (nombre de victoires) 410.00 (62) Perte continue (nombre de pertes) -125.00 (5)
Moyenne gains continus 9 Perte continue 1
Graphique

 

Bonjour !

J'ai besoin que cet EA fonctionne sur un seul compte, mais sur différentes paires. Mais malheureusement, si au moins une transaction est ouverte, l'EA n'ouvre pas de transactions sur d'autres paires, même s'il y a un signal. Quelle est l'erreur ? Aidez-moi à comprendre !

Et une autre question, est-il nécessaire de changer Magic dans les paramètres lors de l'attachement de l'EA au graphique, s'il a déjà été appliqué à une autre paire ?

Voici le code :

//////////////////////////////////////////////////////////////////////
// MUWINGS CROSSING //
//////////////////////////////////////////////////////////////////////
extern string Settings = "Main Settings" ; ////////////////////////
extern int Magic = 227 ; //Numéro individuel//.
extern double Lots =0.1 ;
extern int Slip = 5 ; //Slip/.


//données pour la mise à l'heure

extern string OpenTime = "01:05-23:05" ;

//------------------------------------------------------------------// //
//Indicateurs // //
//------------------------------------------------------------------// //
extern string Indicateur1 = "MA-Slow" ; // // //
extern int MAPeriod1 = 55 ; //période //
extern int MA1_shift = 0 ;
extern string Indicator2 = "MA-Fast" ; // // //
extern int int MAperiod2 = 13 ; //Période //
extern inttern MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1 , tiket2 , cnt ;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0) ; //calculer l'indicateur MA //.
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0) ; //calculer l'indicateur MA //.
//Print("ma2=====",MA2);

chaîne OTA[] ;
chaîne de caractères OTI[] ;
split(OTA, OpenTime, " ;") ;

datetime tm0 = CurTime() ;
datetime tm1, tm2 ;

bool cond = false ;

int cnt = ArraySize(OTA) ;
for (int i=0 ; i < cnt ; i++) {
split(OTI, OTA[i], "-")
si (ArraySize(OTI) != 2) continuer ;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[0]) ;
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[1]) ;

cond = cond || (tm1 <= tm0 && tm0 < tm2)
}


si (cond)
{
si(OrdersTotal()==0)
{
si((MA2>MA1)&&(Close[0]>MA2)))
{
tiket1=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE)
}


si((MA2<MA1)&&(Close[0]<MA2))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE) ;
}
}

si(OrdersTotal()==1)
{
si((MA2>MA1)&&(Close[0]>MA2 )))
{
OrdreClose(tiket2,Lots,Ask,Slip,Red) ;
}

si((MA2<MA1)&&(Close[0]<MA2))
{
OrdreClose(tiket1,Lots,Bid,Slip,Red) ;
}
}
}
}

void split(string& arr[], string str, string sym)
{
ArrayResize(arr, 0) ;
string item ;
int pos, size ;

int len = StringLen(str) ;
for (int i=0 ; i < len ;) {
pos = StringFind(str, sym, i) ;
si (pos == -1) pos = len ;

item = StringSubstr(str, i, pos-i) ;
item = StringTrimLeft(item) ;
item = StringTrimRight(item) ;

taille = ArraySize(arr) ;
ArrayResize(arr, taille+1) ;
arr[taille] = item ;

i = pos+1 ;
}
}

 
marten82:

Bonjour !

extern string OpenTime = "01:05-23:05" ;

//------------------------------------------------------------------// //
//Indicateurs // //
//------------------------------------------------------------------// //
extern string Indicateur1 = "MA-Slow" ; // // //
extern int MAPeriod1 = 55 ; //période //
extern int MA1_shift = 0 ;
extern string Indicator2 = "MA-Fast" ; // // //
extern int int MAperiod2 = 13 ; //Période //
extern inttern MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1 , tiket2 , cnt ;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0) ; //calculer l'indicateur MA //.
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0) ; //calculer l'indicateur MA //.
//Print("ma2=====",MA2);

chaîne OTA[] ;
chaîne de caractères OTI[] ;
split(OTA, OpenTime, " ;") ;

datetime tm0 = CurTime() ;
datetime tm1, tm2 ;

bool cond = false ;

int cnt = ArraySize(OTA) ;
for (int i=0 ; i < cnt ; i++) {
split(OTI, OTA[i], "-") ;
si (ArraySize(OTI) != 2) continuer ;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[0]) ;
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[1]) ;

cond = cond || (tm1 <= tm0 && tm0 < tm2)
}


si (cond)
{
if(OrdersTotal()==0)
{

si((MA2>MA1)&&(Close[0]>MA2)))
{
tiket1=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE)
}


si((MA2<MA1)&&(Close[0]<MA2))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE) ;
}
}

if(OrdersTotal()==1)
{
si((MA2>MA1)&&(Close[0]>MA2 )))
{
OrdreClose(tiket2,Lots,Ask,Slip,Red) ;
}

si((MA2<MA1)&&(Close[0]<MA2))
{
OrdreClose(tiket1,Lots,Bid,Slip,Red) ;
}
}
}
}

void split(string& arr[], string str, string sym)
{
ArrayResize(arr, 0) ;
string item ;
int pos, size ;

int len = StringLen(str) ;
for (int i=0 ; i < len ;) {
pos = StringFind(str, sym, i) ;
si (pos == -1) pos = len ;

item = StringSubstr(str, i, pos-i) ;
item = StringTrimLeft(item) ;
item = StringTrimRight(item) ;

taille = ArraySize(arr) ;
ArrayResize(arr, taille+1) ;
arr[taille] = item ;

i = pos+1 ;
}
}


Je pense que c'est là où c'est surligné en rouge.
 
-marten82:

Bonjour !

J'ai besoin que cet EA fonctionne sur un seul compte, mais sur différentes paires. Mais malheureusement, si au moins une transaction est ouverte, l'EA n'ouvre pas de transactions sur d'autres paires, même s'il y a un signal. Quelle est l'erreur ? Aidez-moi à comprendre !

Et une autre question, est-il nécessaire de changer Magic dans les paramètres lors de l'attachement de l'EA au graphique, s'il a déjà été appliqué à une autre paire ?

Voici le code :


...
si(OrdersTotal()==0)

....
Voilà la racine du mal.
 
paukas:
Voilà la racine du mal.
Je devinais. Pourriez-vous m'aider à trouver la bonne condition ? Parce que quelque chose ne fonctionne pas pour moi.
 

J'ai le sentiment que l'EA refuse obstinément de se connecter avant 21.45, bien que tout soit correct dans le code et qu'il n'y ait aucune restriction à ce sujet....see ce que la raison peut être là plz ? upd a redémarré l'ordinateur, au premier passage il y avait des enregistrements du début de la journée, et encore une fois tout recommencé... on a l'impression que quelque chose est mis en cache, mais qu'est-ce que c'est ?



 
asc9:

J'ai un bon pressentiment, mais je ne sais pas comment l'utiliser... Je ne sais pas comment l'utiliser... Je suis sûr que je ne sais pas comment l'utiliser, mais je suis sûr que je pourrai l'utiliser... Je suis sûr que je pourrai l'utiliser... upd a redémarré l'ordinateur, au premier passage il y avait des enregistrements du début de la journée, et encore une fois tout recommencé... on a l'impression que quelque chose est mis en cache, mais qu'est-ce que c'est ?




Je pense que c'est à cause de la première condition. Essayez Hour()<=22.