EA N7S_AO_772012 - page 40

 
Vovanych >> :

1. J'ai mis N7S_AO_772012_M1 dans C:\Program Files\MetaTrader - Alpari\experts. L'ai-je fait correctement ?

2. iCus_N7S_TSM_forExp Je l'ai mis dans C:Program Files\MetaTrader - Alpari\experts\indicators. L'ai-je fait correctement ?

Dois-je effectuer certains réglages dans le terminal pour que N7S_AO_772012_M1 fonctionne avec l'indicateur iCus_N7S_TSM_forExp ? Si oui, lesquelles ?

4. Quelles modifications doivent être apportées à N7S_AO_772012_M1 ou N7S_AO_772012_L9_2 pour fonctionner correctement sur le terminal SystemForex, c'est-à-dire avec quatre signes ?

Il est inutile pour moi d'expliquer les pertes et les stops. Vous devez me frapper dans le texte de programmation de l'EA et me montrer ce qu'il faut corriger ici. C'est-à-dire que je serais capable de comprendre que telle ou telle ligne de l'EE doit être remplacée par telle ou telle autre.

La réponse est .

1. Droit

2) Correct.

3. lors du réglage des paramètres de l'Expert Advisor, sélectionnez Indctr=2

4. "Ça ne sert à rien de m'expliquer les élans et les arrêts." À mon avis, ça ne sert à rien d'expliquer le reste non plus. Pour l'instant.

 
gorby777 писал(а) >>

Réponse :

1.Correct.

2) Correct.

Sélectionnez Indctr=2 lors du réglage des paramètres de l'EA.

4) "Il est inutile pour moi d'expliquer les lots et les arrêts pour le moment" Mon opinion est qu'il est inutile d'expliquer le reste également. Au revoir.

Merci mate))))

Je ne m'attendais même pas à ce que quelqu'un réponde.

En ce qui concerne le quatrième point, il s'agissait de savoir où dans le texte du programme faire les corrections ?

Le texte est joint :


//Sh N7S_AO_772012_9.mq4 v.77.2012 Sh///
//Chasseur de Sh par le profit Sh///
//Sh Balashiha S&N@yandex.ru ///
//Sh Version 31 janvier 2009 ///

//L2 version avec une séparation claire entre Achat et Vente
#property copyright "Copyright © 2007, Shooter777"
#lien de propriété "S7N@mail.ru"

#include <WinUser32.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
//------------------------------------------------------------------//
int HM_ALL = 18 ; //
int Trade = 1 ; //
//------------------------------------------------------------------//
extern bool Trd_Up_X = true ; int HM_Up_X = 1 ; // ////
//------------------------------------------------------------------//
//externes
double tpx = 5 ;
extern double slx = 500 ; extern int px = 10 ;
extern int x1 = 0;extern int x2 = 0;extern int x3 = 0;extern int x4 = 0;int tx = 0 ;
//------------------------------------------------------------------//
extern bool Trd_Dn_Y = true ; int HM_Dn_Y = 1 ; ////
//------------------------------------------------------------------//
//externes
double tpy = 5 ; extern double sly = 500;extern int py = 10 ;
extern int y1 = 0;extern int y2 = 0;extern int y3 = 0;extern int y4 = 0 ; int ty = 0 ;
//------------------------------------------------------------------//
chaîne externe Text0="BTS F=1" ;
extern int F = 1 ; extern int pz = 10 ;
extern int z1 = 0 ; extern int z2 = 0 ; extern int z3 = 0 ; extern int z4 = 0 ; int tz = 0 ;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
extern string Text1="Neyro G=4" ; extern int G = 4 ; extern string Text2="XXXXXXXXXXX" ;
//externes
extern double tpX = 5 ; extern double slX = 500;extern int pX = 10 ;
extern int X1 = 0;extern int X2 = 0;extern int X3 = 0;extern int X4 = 0;int tX = 0 ;
//------------------------------------------------------------------//
extern string Text3="YYYYYYYYYY" ;
//externes
double tpY = 5 ; externe double slY = 500;externe int pY = 10 ;
extern int Y1 = 0 ; extern int Y2 = 0 ; extern int Y3 = 0 ; extern int Y4 = 0 ; int tY = 0 ;
//------------------------------------------------------------------//
extern string Text4="ZZZZZZZZZZZ";extern int pZ = 10 ;
extern int Z1 = 0;extern int Z2 = 0;extern int Z3 = 0;extern int Z4 = 0;int tZ = 0 ;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
double externe lots = 0.1 ;
extern inttern Indctr = 1 ;
//------------------------------------------------------------------//
bool TrBlnc = true ; int StrtBlnc = 2500 ; int DBlnc = 2000 ; int UBlnc = 3500 ;
//------------------------------------------------------------------//
int mn;int mnx1 = 772012055;int mny1 = 772012155;int mnX1 = 772012011;int mnY1 = 772012111 ;
static int prvtm = 0;static double sl = 10;static double tp = 10 ;

bool cm15=false ; bool cmH1=false ; bool cmH4=false ;
int MMH1 ;int MN ;
statique int bu,sll ;
static bool Flg=false ;
static bool FlqB=true ; static bool FlqS=true ;
int i;int ticket = -1;int total;int spread ;
datetime LFB ;
double prcptx1=0,prcpty1=0,prcptX1=0,prcptY1=0,prcptZ1=0 ;
statique double Delta_G12,iCusAO_1,iCusAO_2,iCusTSM_1,iCusTSM_2,Dlt_AO12,Dlt_TSM12 ;
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init(){MMH1 = Hour( );LFB = iTime(Symbol(), 0, 0) ; H1() ;
Delta_G12 = G12( ) ; if ( IsOptimization( ) ) TrBlnc = false;if ( IsTesting( ) ) TrBlnc = false ;
if (VSR () !=0) {Flg=false;} else {Flg=true;}
cmmnt();}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{ if ( x1==0&x2==0&&x3==0&x4==0&y1==0&&y2==0&y3==0&&y4==0)return (0) ;
if (!Flg){if (VSR () ==0) {Flg=true ; return (0);}}
total = OrdersTotal();//spread = MarketInfo(Symbol(), MODE_SPREAD) ;
int iTm = iTime(Symbol(), 0, 0);if(LFB == iTm) return(0) ; LFB = iTime(Symbol(), 0, 0) ;
int MMM15 = MathMod(Minute( ), 15) ;
if(cm15) {if(MMM15 == 0 ) {cm15 =false ; }} if(MMM15 !=0){cm15=true;}
if(Hour( ) != MMH1) {MMH1 = Hour( ) ; H1( );}
int MMH4 = MathMod(Hour( ), 4) ;
if(cmH4) {if(MMH4 == 0 ) {cmH4 =false ;
Delta_G12 = G12() ;
FlqB = vrai ;FlqS = vrai ;
}}
if(MMH4 !=0){cmH4=true ; }
trl() ;
startM5() ;
cmmnt();}

double G12() {switch(Indctr)
{case 0 :
iCusAO_1 = iAO(NULL, 240, 1) ; iCusAO_2 = iAO(NULL, 240, 2) ;
iCusTSM_1 = iCusTSM (24, 1) ; iCusTSM_2 = iCusTSM (24, 2) ;
Dlt_AO12 = iCusAO_1 -iCusAO_2 ; Dlt_TSM12 = iCusTSM_1-iCusTSM_2 ;
si ( Dlt_AO12>=0 && Dlt_TSM12 <=0) retourner (0) ;
si ( Dlt_AO12<=0 && Dlt_TSM12 >=0) retourner (0) ;
retour(Dlt_AO12) ;
cas 1 :
iCusAO_1 = iAO(NULL, 240, 1) ; iCusAO_2 = iAO(NULL, 240, 2) ;
Dlt_AO12 = iCusAO_1 -iCusAO_2 ; return(Dlt_AO12) ;
cas 2 :
iCusTSM_1 = iCusTSM (24, 1) ; iCusTSM_2 = iCusTSM (24, 2) ;
Dlt_AO12 = iCusTSM_1-iCusTSM_2 ; return(Dlt_AO12) ;
cas 3 :
iCusAO_1 = iMA(NULL,60,12,0,MODE_EMA,PRICE_CLOSE,1)-iMA(NULL,60,26,0,MODE_EMA,PRICE_CLOSE,1) ;
iCusAO_2 = iMA(NULL,60,12,0,MODE_EMA,PRICE_CLOSE,2)-iMA(NULL,60,26,0,MODE_EMA,PRICE_CLOSE,2) ;
Dlt_AO12 = iCusAO_1 -iCusAO_2 ; return(Dlt_AO12);}}
//+--------------------------------------------------------------------------------------+
double iCusTSM (int pr, int shft)
{ return (iCustom(NULL, 240, "iCus_N7S_TSM_forExp",pr,1,shft)) ; }
//+--------------------------------------------------------------------------------------+
double BTS() {
si ((prcptrnz1() > 0 || F==0))//& bu<HM_Up_X)
{if (prcptx1 > 0 && Delta_G12>0) {sl = slx ; tp = tpx*slx ; mn= mnx1 ; return (1);}}
si ((prcptrnz1() < 0 || F==0))//& sll<HM_Dn_Y)
{if (prcpty1 > 0 && Delta_G12<0) {sl = sly ; tp = tpy*sly ; mn= mny1 ;return (-1);}}
retour (0);}
//+--------------------------------------------------------------------------------------+
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1) ;
si (MathAbs(qw)>at) return(qw);else return(0);}
//+--------------------------------------------------------------------------------------+
double iA_C (int pr){int tmfr=60 ; return(iAO(Symbol(), tmfr, pr));}
//+--------------------------------------------------------------------------------------+
void BuSll ( int pl, int OrdTp, int mgnmb) // pl-source 0-acting 1-closed // OrdTp=type de commande 1-market(0and1) 3-LIMIT(2and3) 5-STOP(4and5)
{ switch(pl)
{case 0 : bu=0 ; sll=0 ; int ChTpBu,ChTpSll ; // Print (" OrdTp ",OrdTp) ; // compte les ordres de marché B&S
switch(OrdTp)
{case 1 : ChTpBu=OP_BUY ; ChTpSll=OP_SELL ; break ;
cas 3 : ChTpBu=OP_BUYSTOP ; ChTpSll =OP_SELLSTOP ; break ;
cas 5 : ChTpBu=OP_BUYLIMIT;ChTpSll =OP_SELLLIMIT ; break;}
for(int i=0;i<OrdersTotal();i++)
{OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ; int OMN=OrderMagicNumber() ;
if(OrderSymbol() != Symbol()){continue;}
if(OrderType()==ChTpBu &&(OMN>=mgnmb && OMN<=mgnmb+99)){ bu++;}
if(OrderType()==ChTpSll &&(OMN>=mgnmb+100 && OMN<=mgnmb+199)){sll++;}
}break ;
cas 1 : int pstv=0, ngtv=0 ; // analyse historique sélectionnée
Print ("Order count in history") ; break;}}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double prcptrnz1() {double qz =(z1-50)*(Close[1]-Open[pz])+(z2-50)*(Open[pz]-Open[pz*2])
+(z3-50)*(Open[pz*2]-Open[pz*3])+(z4-50)*(Open[pz*3]-Open[pz*4]);return(qz);}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double prcptrnZ1() {double qZ =(Z1-50)*(Close[1]-Open[pZ])+(Z2-50)*(Open[pZ]-Open[pZ*2])
+(Z3-50)*(Open[pZ*2]-Open[pZ*3])+(Z4-50)*(Open[pZ*3]-Open[pZ*4]);return(qZ);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void trl(){
total= OrdersTotal() ; spread = MarketInfo(Symbol(), MODE_SPREAD) ;
for( i = total-1 ; i >= 0 ; i--)
{ OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ; MN=OrderMagicNumber() ;
if(OrderSymbol() == Symbol() && MN>= 772012000 && MN<=772012199)
{ if (MN==772012055) {sl = slx ; tp = tpx*slx ; mn= mnx1;}
if (MN==772012155) {sl = sly ; tp = tpy*sly ; mn= mny1;}
if (MN==772012011) {sl = slX ; tp = tpX*slX ; mn= mnX1;}
if (MN==772012111) {sl = slY ; tp = tpY*slY ; mn= mnY1;}

int prevticket = OrderTicket();if(OrderType() == OP_BUY)
{si(FLG(0)) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
si(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)
{si(VSR()< 0) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
else { OrderModify(OrderTicket(),OrderOpenPrice(),Bid - sl * Point,0, 0, Blue);}}}
else {if(FLG(0)) { OrderClose(prevticket,OrderLots( ),Ask,slppg(),Blue);}}
si(Ask < (OrderStopLoss() - (sl * 2 + spread) * Point)
{si(VSR() > 0)
{ OrderClose(prevticket,OrderLots( ),Ask,slppg(),Blue);}
else{ OrderModify(OrderTicket(),OrderOpenPrice(),Ask + sl * Point,0,0,Blue);}}}
}}}

double VSR() { prcptZ1 = prcptrnZ1() ;
if(G==4){ if(prcptZ1>0){if(prcptX1>0 && Delta_G12>0){sl = slX ; tp = tpX*slX ; mn= mnX1;return ( 1);}}
else {if(prcptY1>0 && Delta_G12<0){sl = slY ; tp = tpY*slY ; mn= mnY1;return ( -1);}}
return(BTS());}
if(G==3){ if(prcptY1>0 && Delta_G12<0){sl = slY ; tp = tpY*slY ; mn= mnY1;return (-1);}
else {return (BTS());}}
if(G==2){ if(prcptX1>0 && Delta_G12>0){sl = slX ; tp = tpX*slX ; mn= mnX1;return ( 1);}
else {return(BTS();}}
if(G==9){ if(prcptX1>0 && Delta_G12>0 && bu <HM_Up_X){sl = slX ; tp = tpX*slX ; mn= mnX1;return ( 1);}
if(prcptY1>0 && Delta_G12<0 && sll<HM_Dn_Y){sl = slY ; tp = tpY*slY ; mn= mnY1;return (-1);}
retourner (BTS());}
retourner (BTS());}
void H1() { prcptx1 = prcptrnAC(x1,x2,x3,x4,px,tx) ;
prcpty1 = prcptrnAC(y1,y2,y3,y4,py,ty) ;
prcptX1 = prcptrnAC(X1,X2,X3,X4,pX,tX) ;
prcptY1 = prcptrnAC(Y1,Y2,Y3,Y4,pY,tY) ;
//if (Symbol()!="GBPJPY" || Symbol()!="USDCHF"){ FlqB = true ;FlqS = true ; }
BuSll (0,1,772012000) ;
}

//+------------------------------------------------------------------+
void startM5() {ticket = -1 ; RefreshRates() ;
if (total < HM_ALL) { BuSll (0,1,772012000) ; cmmnt() ;
if( FLG(1))
{si (Trd_Up_X && VSR() > 0 && bu <HM_Up_X && FlqB) {
si (MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqB=false;}}
if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y && FlqS) {
si (MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqS=false;}}
}}}
//+------------------------------------------------------------------+
bool FLG (int cs )
{ int AE = AccountEquity( ) ;
switch(cs)
{cas 0 : if((DayOfWeek( ) == 5 && Hour( ) >=22) || (TrBlnc && (AE > UBlnc))
retour (true);sinon retour (false) ;

cas 1 : if (DayOfWeek( ) == 1 && Hour( ) <14) {
string dttm = StringConcatenate (Year(), ".",Month(), ".",Day()) ;
datetime smtm=StrToTime(dttm) ;
bool Gp ;
int shft = iBarShift(NULL,0,smtm) ;
double iOpn = iOpen (NULL,0,shft) ; double iCls = iClose (NULL,0,shft+1) ;
double dOC = MathAbs ((iOpn - iCls)/(Point*10)) ;
si (dOC>20) Gp = true ;
/chaîne var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS ;)
}
if((TrBlnc && ((AE > UBlnc)||(AE < DBlnc))
|| ((DayOfWeek( ) == 1 && Hour( ) <2) || (DayOfWeek( ) == 5 && Hour( ) >=18))
|| ((DayOfWeek( ) == 1 && Hour( ) <14) && Gp))
retour (false);sinon retour (true) ;
}
}
//+------------------------------------------------------------------+
int MOS(int Op_,double Vl,double StLs, double TkPt,string cmnt,int mgc)
{ bool OrSd = false ;
if( !(Op_==0 ||Op_==1)){Print ("Error!!Order not set ! Wrong type !");return (-1);}
else {OrSd = true;}
datetime Begin=TimeCurrent() ;
int err,rslt ; double prc ; couleur clr ;
interrupteur (Op_)
{case 0 : prc=Ask ; clr=Green ; StLs=Bid - StLs * Point ; TkPt=Bid + TkPt * Point ;break ;
cas 1 : prc=Bid ; clr=Red ; StLs=Ask + StLs * Point ; TkPt=Ask - TkPt * Point ;break;}
si( OrSd )
{rslt= OrderSend(Symbol(),Op_,Vl,prc,slppg(),StLs,TkPt,cmnt,mgc,0,clr) ;
si (rslt==-1)
{err=GetLastError() ; Print("Erreur de paramétrage de la commande !!!(",err,") ") ;
si(!IsTesting())
{pendant( !(( rslt>0 || TimeCurrent()-Begin>20))
{Sleep(1000) ; RefreshRates() ;
rslt= OrderSend(Symbol(),Op_,Vl,prc,slppg(),StLs,TkPt,cmnt,mgc,0,clr) ; }}}}
return(rslt);}
//+------------------------------------------------------------------+
int slppg()
{ int sprd =2*MarketInfo(Symbol(),MODE_SPREAD);return ( sprd );}

void cmmnt(){ if ( !IsOptimization( ){
Comment("Buy ",bu," Sell ",sll," symbol ",Symbol(),
"\n Delta_G12",Delta_G12,
"\n x ",prcptx1," y ",prcpty1," z ",prcptrnz1(),
"\n X ",prcptX1," Y ",prcptY1," Z ",prcptrnZ1(),
"\n VSR ",VSR (),
"\n Flg ",Flg," FlqBS ",FlqB," @ ",FlqS,
"\n FLU ",FLG(1)," FLD ",FLG(0) );}}

Pouvez-vous marquer en rouge ce qui doit être corrigé et en bleu ce qu'il faut corriger?

 
L'auteur a déjà répondu à une question similaire quelque part au-dessus.
 
Vovanych писал(а) >>

Pouvez-vous marquer en rouge ce qui doit être corrigé et en bleu ce qui doit l'être ?

Je dois vérifier, mais je ne pense pas que quelque chose doive être changé. Les changements concernent les fichiers d'installation. J'ai inséré un slipage Autoselect. Demandons à ceux d'entre vous qui sont sur les 4 chiffres.

 
SHOOTER777 писал(а) >>

Je vais devoir vérifier, mais je ne pense pas qu'il faille changer quoi que ce soit. Les changements concernent les fichiers d'installation. J'ai inséré la fiche d'échantillonnage automatique. Demandons à ceux qui sont encore sur 4 chiffres.

Merci, j'ai juste deux jeux de vos fichiers de configuration, pour cinq caractères, et pour quatre.

Mais je vais quand même demander aux gens.

 
Aujourd'hui, j'ai testé mes autres EAs du début de l'année, y compris les indicateurs. Au cours des deux dernières semaines, aucun d'entre eux n'a donné de résultats positifs. J'ai également optimisé M1 en utilisant différentes méthodes, mais tout ce que j'ai essayé a été de perdre la dernière semaine. Je pense que la semaine dernière a été difficile pour de nombreuses stratégies.
 

Les gens ! !! Qui sont assis sur quatre chiffres entre guillemets.

Quelqu'un a-t-il apporté des corrections à l'EA N7S_AO_772012_M1 (ou aux versions précédentes) pour qu'elle fonctionne avec des terminaux à quatre chiffres ?

Tout fonctionne correctement sur les terminaux à quatre chiffres ?

 
SHOOTER777 >> :
Aujourd'hui, j'ai testé mes autres EAs du début de l'année, y compris les indicateurs. Au cours des deux dernières semaines, aucun d'entre eux n'a montré de résultats positifs. J'ai également optimisé M1 en utilisant différentes méthodes et la dernière semaine était de toute façon désavantageuse. Je pense que la dernière semaine a été difficile pour de nombreuses stratégies.

Je me suis avéré être dans le plus. C'est donc un mauvais signe pour mes réglages. ((

 

Lors de l'optimisation de N7S_AO_772012_M1 Expert Advisor avec un indicateur et dans le second cas avec deux indicateurs, le second indicateur iCus_N7S_TSM_forExp a révélé la relation suivante :

Dans le premier cas, le bénéfice maximal aux différents stades de l'optimisation est supérieur de 30 à 100 % à celui du deuxième cas.

Dans le premier cas, le nombre de transactions à profit maximum à différents stades est environ deux fois plus élevé que dans le second cas.

En général, le nombre de transactions est très faible.

Qui sait quels paramètres du conseiller expert doivent être modifiés et dans quelle direction pour augmenter le nombre de transactions pendant l'optimisation ?

 

Vovanic, a même ri. )

Nous sommes tous ici pour déterminer collectivement : quels paramètres, dans quelle direction et à quel moment changer pour gagner de l'argent ;))).