EA N7S_AO_772012 - pagina 40

 
Vovanych >> :

1. Ho messo N7S_AO_772012_M1 in C:\ProgrammiMetaTrader - Alpari\experts. L'ho fatto correttamente?

2. iCus_N7S_TSM_forExp l'ho messo in C:Program Files\MetaTrader - Alpari\experts\indicators. L'ho fatto correttamente?

Devo eseguire alcune impostazioni nel terminale per far funzionare N7S_AO_772012_M1 con l'indicatore iCus_N7S_TSM_forExp? Se sì, quali?

4. Quali modifiche devono essere fatte in N7S_AO_772012_M1 o N7S_AO_772012_L9_2 per funzionare correttamente sul terminale SystemForex, cioè con quattro segni?

È inutile che io spieghi le perdite e gli stop. Dovete punzecchiarmi nel testo di progammazione dell'EA e mostrarmi cosa aggiustare lì. Cioè, sarei in grado di capire che la linea così e così nell'EA dovrebbe essere sostituita da così e così.

La risposta è .

1.Giusto

2) Corretto.

3. Quando si impostano i parametri dell'Expert Advisor, selezionare Indctr=2

4. "È inutile spiegarmi ancora l'alce e le fermate". La mia opinione è che è inutile spiegare anche il resto. Per ora.

 
gorby777 писал(а) >>

Rispondi

1.Corretto.

2) Corretto.

3. Selezionare Indctr=2 quando si impostano i parametri EA

4. "È inutile che io spieghi i lotti e le fermate per ora" La mia opinione è che è inutile spiegare anche il resto. Arrivederci.

Grazie mate))))

Non mi aspettavo nemmeno che qualcuno rispondesse.

Per quanto riguarda il quarto punto, si trattava di sapere in quale punto del testo del programma fare le correzioni?

Il testo è allegato:


//Sh N7S_AO_772012_9.mq4 v.77.2012 Sh//
//Sh Hunter per profitto Sh//
//Sh Balashiha S&N@yandex.ru ///
//Sh Versione 31 gennaio 2009 ///

//L2 versione con chiara separazione Buy & Sell
#property copyright "Copyright © 2007, Shooter777"
#proprietà link "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; // ////
//------------------------------------------------------------------//
//extern
doppio 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; ////
//------------------------------------------------------------------//
//extern
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;
//------------------------------------------------------------------//
extern string 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";
//extern
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";
//extern
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;
//------------------------------------------------------------------//
extern string Text4="ZZZZZZZZZZZZZZZ";extern int pZ = 10;
extern int Z1 = 0;extern int Z2 = 0;extern int Z3 = 0;extern int Z4 = 0;int tZ = 0;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
extern double 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=falso; bool cmH1=falso; bool cmH4=falso;
int MMH1 ;int MN ;
int statico bu,sll;
static bool Flg=false;
static bool FlqB=true; static bool FlqS=true;
int i;int ticket = -1;int totale;int spread;
datetime LFB;
doppio prcptx1=0,prcpty1=0,prcptX1=0,prcptY1=0,prcptZ1=0;
statico doppio Delta_G12,iCusAO_1,iCusAO_2,iCusTSM_1,iCusTSM_2,Dlt_AO12,Dlt_TSM12;
//+------------------------------------------------------------------+
//| funzione di init esperto |
//+------------------------------------------------------------------+
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=falso;} else {Flg=true;}
cmmnt();}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{ se ( 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 =falso; }} if(MMM15 !=0){cm15=vero;}
if(Hour( )= MMH1) {MMH1 = Hour( ); H1( );}
int MMH4 = MathMod(Hour( ), 4);
if(cmH4) {if(MMH4 == 0 ) {cmH4 =falso;
Delta_G12 = G12();
FlqB = true ;FlqS = true ;
}}
if(MMH4 !=0){cmH4=true ; }
trl();
startM5();
cmmnt();}

doppio G12() {switch(Indctr)
{caso 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;
se ( Dlt_AO12>=0 && Dlt_TSM12 <=0) ritorna (0);
se ( Dlt_AO12<=0 && Dlt_TSM12 >=0) ritorna (0);
ritorno(Dlt_AO12);
caso 1:
iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);
Dlt_AO12 = iCusAO_1 -iCusAO_2; return(Dlt_AO12);
caso 2:
iCusTSM_1 = iCusTSM (24, 1); iCusTSM_2 = iCusTSM (24, 2);
Dlt_AO12 = iCusTSM_1-iCusTSM_2; return(Dlt_AO12);
caso 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);}}
//+--------------------------------------------------------------------------------------+
doppio iCusTSM (int pr, int shft)
{ return (iCustom(NULL, 240, "iCus_N7S_TSM_forExp",pr,1,shft)); }
//+--------------------------------------------------------------------------------------+
doppio BTS() {
se ((prcptrnz1() > 0 || F==0))//& bu<HM_Up_X)
{if (prcptx1 > 0 && Delta_G12>0) {sl = slx; tp = tpx*slx; mn= mnx1; return (1);}}
if ((prcptrnz1() < 0 || F==0))//& sll<HM_Dn_Y)
{if (prcpty1 > 0 && Delta_G12<0) {sl = sly; tp = tpy*sly; mn= mny1 ;return (-1);}}
return (0);}
//+--------------------------------------------------------------------------------------+
doppio 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);
se (MathAbs(qw)>at) return(qw);altrimenti 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=tipo di ordine 1-market(0e1) 3-LIMIT(2e3) 5-STOP(4e5)
{ switch(pl)
{case 0: bu=0; sll=0; int ChTpBu,ChTpSll; // Print (" OrdTp ",OrdTp); // count B&S market orders
interruttore(OrdTp)
{case 1: ChTpBu=OP_BUY; ChTpSll=OP_SELL; break;
caso 3: ChTpBu=OP_BUYSTOP; ChTpSll =OP_SELLSTOP; break;
caso 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()){continua;}
if(OrderType()==ChTpBu &&(OMN>=mgnmb && OMN<=mgnmb+99)){ bu++;}
if(OrderType()==ChTpSll &&(OMN>=mgnmb+100 && OMN<=mgnmb+199)){sll++;}
}break;
caso 1: int pstv=0, ngtv=0; // analisi della storia selezionata
Stampa ("Conteggio degli ordini nella storia"); pausa;}}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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;}
se (MN==772012155) {sl = sly; tp = tpy*sly; mn= mny1;}
se (MN==772012011) {sl = slX; tp = tpX*slX; mn= mnX1;}
se (MN==772012111) {sl = slY; tp = tpY*slY; mn= mnY1;}

int prevticket = OrderTicket();if(OrderType() == OP_BUY)
{if(FLG(0)) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
se(Bid > (OrderStopLoss() + (sl * 2 + spread) * Punto)
{ if(VSR()< 0) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
else { OrderModify(OrderTicket(),OrderOpenPrice(),Bid - sl * Point,0, 0, Blue);}}}
altrimenti {if(FLG(0)) { OrderClose(prevticket,OrderLots( ),Ask,slppg(),Blue);}}
if(Ask < (OrderStopLoss() - (sl * 2 + spread) * Point)
{if(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);}
return (BTS());}
return (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();
se( FLG(1))
{if (Trd_Up_X && VSR() > 0 && bu <HM_Up_X && FlqB) {
if (MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqB=falso;}}
if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y && FlqS) {
if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqS=falso;}}
}}}
//+------------------------------------------------------------------+
bool FLG (int cs )
{ int AE = AccountEquity( ) ;
interruttore(cs)
{case 0: if((DayOfWeek( ) == 5 && Hour( ) >=22) || (TrBlnc && (AE > UBlnc))
ritorno (vero); altrimenti ritorno (falso);

caso 1: if (DayOfWeek( ) == 1 && Hour( ) <14) {
stringa dttm = StringConcatenate (Anno(),".",Mese(),".",Giorno());
datetime smtm=StrToTime(dttm);
bool Gp;
int shft = iBarShift(NULL,0,smtm);
doppio iOpn = iOpen (NULL,0,shft); doppio iCls = iClose (NULL,0,shft+1);
doppio dOC = MathAbs ((iOpn - iCls)/(Punto*10)) ;
se (dOC>20) Gp = true ;
//stringa var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS;)
}
se((TrBlnc && ((AE > UBlnc)||(AE < DBlnc))
|| ((DayOfWeek( ) == 1 && Hour( ) <2) || (DayOfWeek( ) == 5 && Hour( ) >=18))
|| ((DayOfWeek( ) == 1 && Hour( ) <14) && Gp))
ritorno (falso); altrimenti ritorno (vero);
}
}
//+------------------------------------------------------------------+
int MOS(int Op_, doppio Vl, doppio StLs, doppio TkPt, stringa cmnt, int mgc)
{ bool OrSd = false;
if(!(Op_==0 ||Op_==1)){Print ("Errore!!!Ordine non impostato! Tipo sbagliato!");return (-1);}
else {OrSd = true;}
datetime Begin=TimeCurrent();
int err,rslt; doppio prc; colore clr;
interruttore (Op_)
{case 0: prc=Ask; clr=Green; StLs= Bid - StLs * Point; TkPt=Bid + TkPt * Point ;break;
caso 1: prc=Bid; clr=Red; StLs= Ask + StLs * Point; TkPt=Ask - TkPt * Point ;break;}
se( OrSd )
{rslt= OrderSend(Symbol(),Op_,Vl,prc,slppg(),StLs,TkPt,cmnt,mgc,0,clr);
se (rslt==-1)
{err=GetLastError(); Print("Errore nell'impostazione dell'ordine!!!(",err,") ");
se(!IsTesting())
{while(!(( 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) );}}

Puoi segnare in rosso ciò che va corretto e in blu ciò che va corretto?

 
L'autore ha già risposto a una domanda simile da qualche parte qui sopra.
 
Vovanych писал(а) >>

Puoi segnare in rosso ciò che deve essere corretto e in blu ciò che deve essere corretto?

Devo controllare, ma non credo che sia necessario cambiare qualcosa. I cambiamenti riguardano i file del set di installazione. Autoselect slipage che ho inserito. Chiediamo a quelli di voi sulla 4 cifre.

 
SHOOTER777 писал(а) >>

Dovrò controllare, ma non credo che sia necessario cambiare qualcosa. I cambiamenti riguardano i file del set di installazione. Ho inserito lo slipage di autosampling. Chiediamo a quelli che sono ancora a 4 cifre.

Grazie, ho solo due serie di file del vostro set di configurazione, per cinque caratteri e per quattro.

Ma chiederò comunque alla gente.

 
Oggi ho testato i miei altri EA dall'inizio dell'anno, compresi gli indicatori. Nelle ultime due settimane nessuno di loro ha dato risultati positivi. Ho anche ottimizzato M1 usando diversi metodi, ma tutto quello che ho provato è stato perdere l'ultima settimana. Penso che la scorsa settimana sia stata difficile per molte strategie.
 

Gente!!! Che sono seduti su quattro cifre tra virgolette.

Qualcuno ha apportato delle correzioni all'EA N7S_AO_772012_M1 (o alle versioni precedenti) per funzionare in terminali a quattro cifre?

Tutto funziona correttamente sui terminali a quattro cifre?

 
SHOOTER777 >> :
Oggi ho testato i miei altri EA dall'inizio dell'anno, compresi gli indicatori. Nelle ultime due settimane nessuno di loro ha mostrato risultati positivi. Ho anche ottimizzato M1 con metodi diversi e l'ultima settimana è stata comunque svantaggiosa. Penso che l'ultima settimana sia stata difficile per molte strategie.

Ho scoperto di essere nel plus. Quindi è un brutto segno per le mie impostazioni. ((

 

Nell'ottimizzazione di N7S_AO_772012_M1 Expert Advisor con un indicatore e nel secondo caso con due indicatori, il secondo indicatore iCus_N7S_TSM_forExp ha rivelato la seguente relazione:

Nel primo caso, il profitto massimo nelle diverse fasi dell'ottimizzazione è più alto che nel secondo caso del 30-100%.

Nel primo caso, il numero di affari a massimo profitto nelle diverse fasi è circa il doppio che nel secondo caso.

In generale, il numero di accordi è molto basso.

Chi sa quali parametri dell'Expert Advisor dovrebbero essere cambiati e in quale direzione per aumentare il numero di operazioni durante l'ottimizzazione?

 

Vovanic, ha anche riso. )

Siamo tutti qui per capire collettivamente: quali parametri, in quale direzione e in quale momento cambiare per fare soldi )))

Motivazione: