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

 
Dimka-novitsek:

J'ai lu le post d'ivandurak et j'ai immédiatement réalisé qu'après chaque tick, seul le démarrage est déclenché, donc si vous ouvrez la variable globalement, il semble que la valeur soit sauvegardée.

Il doit donc en être ainsi.

Ainsi, le compilateur n'accepte catégoriquement pas la ligne int KolBars=Bars ; il dit 'Bars' - initialisation attendue C:\Program Files (x86)\Alpari ÌÒ4\expertsÁëù.mq4 (8, 13)

Étonnant !!!!! Déclaration de variable normale. Mais peu importe.

Je vais demander l'essentiel - comment déboguer un EA le week-end, si les ticks ne vont pas ?????.


//| Бред.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
int KolBars=Bars;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
KolBars=Bars;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{int r;
r=Bars- KolBars
//----
for( r>0 )
int k;

KolBars=Bars;

//----
return(0);
}
//+------------------------------------------------------------------+ 
A quoi sert le testeur ?
 

À PROPOS DE L'ALGORITHME GÉNÉTIQUE! !!

Dans mon cas, les poids du réseau neuronal sont sélectionnés. Si vous exécutez une optimisation sans algorithme génétique, cela prendra un TRES long moment.

Il n'y a pas de pseudo-aléatoire dans le code.

Bien que l'algorithme du gène essaie également de nombreuses variantes, il agit également selon un certain programme (dans un seul et même intervalle et dans des conditions identiques). Je ne comprends pas pourquoi nous obtenons des résultats différents.

D'ailleurs personne n'a posé la question pour tester le travail de l'ALGORITHME GEN. Exactement : exécuter deux fois l'optimisation et comparer les résultats.... Essayer.

 
Stepan241:

À PROPOS DE L'ALGORITHME GÉNÉTIQUE ! !!

Dans mon cas, les poids du réseau neuronal sont sélectionnés. Si vous exécutez une optimisation sans algorithme génétique, cela prendra un TRES long moment.

Il n'y a pas de pseudo-aléatoire dans le code.

Bien que l'algorithme du gène essaie également de nombreuses variantes, il agit également selon un certain programme (dans un seul et même intervalle et dans des conditions identiques). Je ne comprends pas pourquoi nous obtenons des résultats différents.

D'ailleurs personne n'a posé la question pour tester le travail de l'ALGORITHME GEN. Exactement : exécutez l'optimisation deux fois et comparez les résultats....A essayez.


Aidez-vous.

https://www.mql5.com/ru/articles/1409https://www.mql5.com/ru/articles/1408 https://www.mql5.com/ru/articles/1511

 

Chers experts ! Veuillez m'indiquer la fonction qui modifie le lot et le nombre d'ordres en fonction de la valeur du solde.

 
Stepan241:

À PROPOS DE L'ALGORITHME GÉNÉTIQUE !!!

D'ailleurs, personne n'a posé la question de TESTER le travail de l'ALGORITHME DU GENE. Exactement : exécutez l'optimisation deux fois et comparez les résultats....A essayez.

Vous travaillez avec mql depuis longtemps, d'après ce que je comprends, gen. alg. utilise des nombres pseudo aléatoires pour tracer les paquets de configuration initiale, et seulement ensuite commence à considérer par des définitions données où et quoi chercher.

https://www.mql5.com/ru/articles/1408

Le schéma de fonctionnement de l'algorithme génétique

1.initier l'instant initial t=0. Formez aléatoirement une population initiale composée de k individus. B0 = {A1,A2,...,Ak)

2. ...

 
fanat:

Chers experts ! Veuillez m'indiquer la fonction qui change le lot et le nombre d'ordres en fonction de la valeur de la balance.


https://www.mql5.com/ru/code/8192

L'auteur utilise le lot dynamique et le nombre maximum d'options.

MaxOrders_Desc = "si 0, le nombre de positions ouvertes simultanément n'est pas limité à 1-3" ;
MaxOrders = 1 ;

Lots_Desc = "If 0 Apply Dynamic Lot" ;

Lots = 1 ;

 

Veuillez m'indiquer s'il est possible d'ouvrir des ordres de différentes paires de devises en un seul cycle alors qu'après avoir vérifié la condition d'entrée, une erreur 4051 continue de s'afficher.

while(true)

{
if (Total==0 && Opn_B==true && Total1==0 && Opn_S1==true) // aucun ordre ouvert pour les première et deuxième paires de devises plus les critères d'ouverture
{

RefreshRates() ; // Mise à jour des données
double bid = MarketInfo(Symb2,MODE_BID) ;
Alert("Trying to open Buy and Sell. Waiting for reply.") ;
Ticket=OrderSend(Symb1,OP_BUY,Lts,Ask,2,0,0) ; //open Buy
Ticket1=OrderSend(Symb2,OP_SELL,Lts,bid,2,0,0) ;
if (Ticket > 0 && Ticket1 > 0) // It worked :)
{
Alert ("Buy and Sell order opened ",Ticket,Ticket1) ;
return ; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Gestion des erreurs
continue ; // Retenter
return ; // Exit start()
}

 
Dimka-novitsek:

Ainsi, le compilateur n'accepte catégoriquement pas la ligne int KolBars=Bars ; il dit 'Bars' - initialisation attendue C:\Program Files (x86)\Alpari ÌÒ4\expertsÁåë.mq4 (8, 13)

Je vais demander l'essentiel - comment déboguer un EA le week-end, si les ticks ne vont pas ?????.

1.
//| Бред.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
int KolBars;//=барс нельзя переменную присвоить вне функций




//| expert initialization function 
|

int init()
{
KolBars=Bars; //один раз при инициализ.

return(0);
}
...
2. Sur le test de stratégie ;).
 

Bon après-midi ! !! LOL !!!!!! ''pour'' - expression trop complexe C:\Program Files (x86)\Alpari MT4\experts\bred.mq4 (34, 1)

"for" - expression trop complexe C:\Program Files (x86)\Alpari ??4\experts\ ???????.mq4 (34, 1)

Est-il possible de déboguer un EA le week-end en mode test de la même manière que lorsqu'on reçoit des ticks sur la plateforme, en obtenant des réponses des fonctions Commentaire, Alerte, ?

 
xxxslavaxxx:

Veuillez m'indiquer s'il est possible d'ouvrir des ordres de différentes paires de devises en un seul cycle alors qu'après avoir vérifié la condition d'entrée, une erreur 4051 continue de s'afficher.

while(true)

{
if (Total==0 && Opn_B==true && Total1==0 && Opn_S1==true) // aucun ordre ouvert pour les première et deuxième paires de devises + il y a des critères ouverts
{

RefreshRates() ; // Rafraîchir les données
double bid = MarketInfo(Symb2,MODE_BID) ;
Alert("Essayer d'ouvrir Achat et Vente. Attendre la réponse...") ;
Ticket=OrderSend(Symb1,OP_BUY,Lts,Ask,2,0,0);//ouverture de l'achat
if(GetLastError()==4051)Alert("Symb1"+Symb1+" Lts "+Lts+" Ask "+Ask) ;
//si(Ticket>0)Sleep(50);sinon continuez ;

Ticket1=OrderSend(Symb2,OP_SELL,Lts,bid,2,0,0) ;
if(GetLastError()==4051)Alert("Symb2"+Symb2+" Lts "+Lts+" bid "+bid) ;


if (Ticket > 0 && Ticket1 > 0) // Cela a marché :)
{
Alerte ("Ordre d'achat ou de vente ouvert",Ticket,Ticket1) ;
return ; // Sortie
}
if (Fun_Error(GetLastError())==1) // Traitement des erreurs
continue ; // réessayer
return ; // Sortie de start()
}