EA N7S_AO_772012 - página 40

 
Vovanych >> :

1. coloquei N7S_AO_772012_M1 em C:\Program Files\MetaTrader - Alpari Eu o fiz corretamente?

2. iCus_N7S_TSM_forExp Coloquei-o na C:Program Files\MetaTrader - Alpari Experts Indicators. Eu o fiz corretamente?

Preciso realizar alguns ajustes no terminal para fazer o N7S_AO_772012_M1 funcionar com o indicador iCus_N7S_TSM_forExp? Em caso afirmativo, quais?

4. Que mudanças devem ser feitas em N7S_AO_772012_M1 ou N7S_AO_772012_L9_2 para funcionar corretamente no terminal SystemForex, ou seja, com quatro sinais?

É inútil para mim explicar sobre as perdas e as paradas. Você precisa me cutucar no texto de programação da EA e me mostrar o que devo consertar lá. Ou seja, eu seria capaz de entender que a linha mais ou menos na EA deve ser substituída por mais ou menos.

A resposta é .

1.Certo

2) Correto.

3. ao definir os parâmetros do Expert Advisor, selecione Indctr=2

4) "Não adianta explicar o alce e parar para mim ainda". Por enquanto.

 
gorby777 писал(а) >>

Resposta

1.Correto.

2) Correto.

3.Selecione Indctr=2 ao definir os parâmetros EA

4) "É inútil para mim explicar sobre os lotes e parar por enquanto". Minha opinião é que é inútil explicar o resto também. Tchau.

Obrigado mate))))

Eu nem sequer esperava que alguém respondesse.

Em relação ao quarto ponto, era sobre onde, no texto do programa, fazer correções?

O texto está anexado:


//Sh N7S_AO_772012_9.mq4 v.77.2012 Sh//
//Sh Hunter by profit Sh//
//Sh Balashiha S&N@yandex.ru ///
//Sh Versão 31 de janeiro de 2009 ///

//L2 versão com separação clara de compra e venda
#direitos de propriedade intelectual "Copyright © 2007, Shooter777"
#link da propriedade "S7N@mail.ru"

#Incluir <WinUser32.mqh>
#incluir <stderror.mqh>
#incluir <stdlib.mqh>
//------------------------------------------------------------------//
int HM_ALL = 18; //
int Trade = 1; //
//------------------------------------------------------------------//
bool externo Trd_Up_X = verdadeiro; int HM_Up_X = 1; // ////
//------------------------------------------------------------------//
//externa
duplo tpx = 5;
slx duplo externo = 500; px int externo = 10;
int externo x1 = 0;int externo x2 = 0;int externo x3 = 0;int externo x4 = 0;int tx = 0;
//------------------------------------------------------------------//
bool externo Trd_Dn_Y = verdadeiro; int HM_Dn_Y = 1; ////
//------------------------------------------------------------------//
//externa
duplo tpy = 5; externo duplo sly = 500; externo int py = 10;
int externo y1 = 0; int externo y2 = 0; int externo y3 = 0; int externo y4 = 0; int ty = 0;
//------------------------------------------------------------------//
texto de cadeia externa Text0="BTS F=1";
int externo F = 1; int externo pz = 10;
int externo z1 = 0; int externo z2 = 0; int externo z3 = 0; int externo z4 = 0; int tz = 0;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
string externa Texto1="Neyro G=4"; External int G = 4; External string Texto2="XXXXXXXXXXXXX";
//externa
duplo externo tpX = 5; duplo externo slX = 500; externo int pX = 10;
int externo X1 = 0;int externo X2 = 0;int externo X3 = 0;int externo X4 = 0;int tX = 0;
//------------------------------------------------------------------//
texto3="YYYYYYYYY";
//externa
duplo tpY = 5; duplo slY externo = 500; int externo pY = 10;
int exterior Y1 = 0; int exterior Y2 = 0; int exterior Y3 = 0; int exterior Y4 = 0; int tY = 0;
//------------------------------------------------------------------//
texto4="ZZZZZZZZZZZZZZZ";int externo pZ = 10;
extern int Z1 = 0;extern int Z2 = 0;extern int Z3 = 0;extern int Z4 = 0;int tZ = 0;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
lotes duplos externos = 0,1;
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 ;
estática int bu,sll;
bool estático Flg=falso;
bool estático FlqB=verdadeiro; bool estático FlqS=verdadeiro;
int i;int ticket = -1;int total;int spread;
data/hora LFB;
duplo prcptx1=0,prcpty1=0,prcptX1=0,prcptY1=0,prcptZ1=0;
estático duplo Delta_G12,iCusAO_1,iCusAO_2,iCusTSM_1,iCusTSM_2,Dlt_AO12,Dlt_TSM12;
//+------------------------------------------------------------------+
//| função de perito em init |
//+------------------------------------------------------------------+
int init(){MMH1 = Hora( );LFB = iTime(Symbol(), 0, 0); H1();
Delta_G12 = G12( ); se ( IsOptimization( ) ) TrBlnc = falso; se ( IsTesting( ) ) TrBlnc = falso;
se (VSR () !=0) {Flg=falso;} senão {Flg=verdadeiro;}
cmmnt();}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
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=verdadeiro; retornar (0);}}}
total = OrdensTotal();//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=verdadeiro;}
if(Hour( ) != MMH1) {MMH1 = Hora( ); H1( );}
int MMH4 = MathMod(Hora( ), 4);
if(cmH4) {if(MMH4 == 0 ) {cmH4 =falso;
Delta_G12 = G12();
FlqB = true ;FlqS = true ;
}}
if(MMH4 !=0){cmH4=verdadeiro ; }
trl();
startM5();
cmmnt();}

duplo G12() {switch(Indctr)
{caixa 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) retornar (0);
se ( Dlt_AO12<=0 && Dlt_TSM12 >=0) retornar (0);
return(Dlt_AO12);
caso 1:
iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);
Dlt_AO12 = iCusAO_1 -iCusAO_2; retorno(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);}}}
//+--------------------------------------------------------------------------------------+
duplo iCusTSM (int pr, int shft)
{ retornar (iCustom(NULL, 240, "iCus_N7S_TSM_forExp",pr,1,shft)); }
//+--------------------------------------------------------------------------------------+
duplo BTS() {
if ((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);}}}
retornar (0);}
//+--------------------------------------------------------------------------------------+
duplo 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);
if (MathAbs(qw)>at) return(qw);else return(0);}
//+--------------------------------------------------------------------------------------+
double iA_C (int pr){int tmfr=60; return(iAO(Symbol(), tmfr, pr));}
//+--------------------------------------------------------------------------------------+
BuSll vazio ( int pl, int OrdTp, int mgnmb) // pl-source 0-acting 1-closed // OrdTp=peça tipo 1-mercado(0e1) 3-LIMIT(2e3) 5-STOP(4e5)
{ interruptor(pl)
{case 0: bu=0; sll=0; int ChTpBu,ChTpSll; // Imprimir (" OrdTp ",OrdTp); // contar ordens de mercado B&S
interruptor(OrdTp)
{case 1: ChTpBu=OP_BUY; ChTpSll=OP_SELL; break;
caso 3: ChTpBu=OP_BUYSTOP; ChTpSll =OP_SELLSTOP; pausa;
caso 5: ChTpBu=OP_BUYLIMIT;ChTpSll =OP_SELLLIMIT; pausa;}
for(int i=0;i<OrdersTotal();i++)
{OrderSelect(i, SELECT_BY_POS, MODE_TRADES); int OMN=OrderMagicNumber();
if(OrderSymbol() != Symbol()){continuar;}
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; // análise do histórico selecionado
Imprimir ("Contagem de pedidos na história"); 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);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
{if(FLG(0)) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Ponto)
{ if(VSR()< 0) { OrderClose(prevticket,OrderLots( ),Bid,slppg(),Black);}
else { OrderModify(OrderTicket(),OrderOpenPrice(),Bid - sl * Point,0, 0, Blue);}}}}}
senão {if(FLG(0)) { OrderClose(prevticket,OrderLots( ),Ask,slppg(),Blue);}}}}
if(Ask < (OrderStopLoss() - (sl * 2 + spread) * Ponto)
{se(VSR() > 0)
{ OrderClose(prevticket,OrderLots( ),Ask,slppg(),Blue);}
else{ OrderModify(OrderTicket(),OrderOpenPrice(),Ask + sl * Point,0,0,Blue);}}}}}}
}}}

duplo 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);}
senão {retorno (BTS());}}}}
if(G===2){ if(prcptX1>0 && Delta_G12>0){sl = slX; tp = tpX*slX; mn= mnX1;return ( 1);}
senão {retorno(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);}
retorno (BTS());}
retorno (BTS());}
vazio H1() { prcptx1 = prcptrnAC(x1,x2,x3,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);
}

//+------------------------------------------------------------------+
startM5() {ticket = -1 ; RefreshRates();
if (total < HM_ALL) { BuSll (0,1,772012000); cmmnt();
if( FLG(1))
{if (Trd_Up_X && VSR() > 0 && bu <HM_Up_X && FlqB) {
if (MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqB=false;}}}
if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y && FlqS) {
if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {FlqS=false;}}}}
}}}
//+------------------------------------------------------------------+
bool FLG (int cs )
{ int AE = AccountEquity( ) ;
interruptor(cs)
{case 0: if((DayOfWeek( ) == 5 && Hour( ) >=22) ||| (TrBlnc && (AE > UBlnc))
retornar (verdadeiro); caso contrário, retornar (falso);

caso 1: se (DayOfWeek( ) == 1 && Hora( ) <14) {
string dttm = StringConcatenate (Ano(),",Mês(),",Dia());
datetime smtm=StrToTime(dttm);
bool Gp;
int shft = iBarShift(NULL,0,smtm);
iOpn duplo = iOpen (NULL,0,shft); iCls duplo = iClose (NULL,0,shft+1);
duplo dOC = MathAbs ((iOpn - iCls)/(Ponto*10)) ;
se (dOC>20) Gp = verdadeiro ;
//string var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS;)
}
if((TrBlnc && ((AE > UBlnc)|||(AE < DBlnc))
||| ((DayOfWeek( ) == 1 && Hora( ) <2) ||| (DayOfWeek( ) == 5 && Hora( ) >=18))
|| ((DayOfWeek( ) == 1 && Hora( ) <14) && Gp))
retornar (falso); caso contrário, retornar (verdadeiro);
}
}
//+------------------------------------------------------------------+
int MOS(int Op_,double Vl,double StLs, double TkPt,string cmnt,int mgc)
{ bool OrSd = falso;
if(!(Op_==0 ||Op_===1)){Imprimir ("Erro!!!Ordem não definida! Tipo errado!");retornar (-1);}
senão {OrSd = verdadeiro;}
data/hora Início=TempoCorrente();
int err,rslt; duplo prc; cor clr;
interruptor (Op_)
{case 0: prc=Ask; clr=Green; StLs= Bid - StLs * Ponto; TkPt=Bid + TkPt * Ponto ;break;
caso 1: prc=Bid; clr=Red; StLs= Ask + StLs * Ponto; TkPt=Ask - TkPt * Ponto ;break;}
se( OrSd )
{rslt= OrderSend(Symbol(),Op_,Vl,prc,slppg(),StLs,TkPt,cmnt,mgc,0,clr);
se (rslt==-1)
{err=GetLastError(); Print("Error setting the order!!!(",err,") ");
if(!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( ) ){
Comentário("Comprar ",bu," Vender ",sll," símbolo ",Symbol(),
"Delta_G12",Delta_G12,
"\n x ",prcptx1," y ",prcpty1," z ",prcptrnz1(),
"X ",prcptX1", Y ",prcptY1", Z ",prcptrnZ1(),
"VSR",VSR (),
"\n Flg ",Flg," FlqBS ",FlqB," @ ",FlqS,
"FLU ",FLG(1)," FLD ",FLG(0) );}}}

Você pode marcar em vermelho o que deve ser corrigido e em azul o que deve ser corrigido?

 
O autor já respondeu a uma pergunta semelhante em algum lugar acima.
 
Vovanych писал(а) >>

Você pode marcar em vermelho o que precisa ser corrigido e em azul o que precisa ser corrigido?

Tenho que verificar, mas não acho que nada precise ser mudado. As mudanças dizem respeito aos arquivos do conjunto de instalação. Escorregão Autoselect que eu inseri. Vamos perguntar àqueles de vocês sobre os 4 dígitos.

 
SHOOTER777 писал(а) >>

Terei que verificar, mas não acho que nada precise ser mudado. As mudanças dizem respeito aos arquivos do conjunto de instalação. Eu inseri o deslizamento de auto-amostragem. Vamos perguntar àqueles que ainda estão com 4 dígitos.

Obrigado, tenho apenas dois conjuntos de seus arquivos de configuração, para cinco caracteres, e para quatro.

Mas ainda vou perguntar ao povo.

 
Hoje testei meus outros EAs desde o início do ano, incluindo os indicadores. Nas últimas duas semanas, nenhum deles deu resultados positivos. Eu também otimizei M1 usando métodos diferentes, mas tudo o que tentei foi perder na última semana. Penso que a semana passada foi difícil para muitas estratégias.
 

Gente!!! Que estão sentados em quatro dígitos entre aspas.

Alguém já fez alguma correção no N7S_AO_772012_M1 EA (ou versões anteriores) para trabalhar em terminais de quatro dígitos?

Tudo funciona corretamente em terminais de quatro dígitos?

 
SHOOTER777 >> :
Hoje testei meus outros EAs desde o início do ano, incluindo os indicadores. Nas últimas duas semanas, nenhum deles apresentou resultados positivos. Eu também otimizei M1 usando métodos diferentes e a última semana foi desvantajosa de qualquer forma. Penso que a última semana foi difícil para muitas estratégias.

Acabei me revelando um "plus". Portanto, é um mau sinal para as minhas configurações. ((

 

Ao otimizar o N7S_AO_772012_M1 Expert Advisor com um indicador e no segundo caso com dois indicadores, o segundo indicador iCus_N7S_TSM_forExp revelou a seguinte relação:

No primeiro caso, o lucro máximo em diferentes estágios de otimização é maior do que no segundo caso em 30-100%.

No primeiro caso, o número de negócios com lucro máximo em diferentes estágios é cerca de duas vezes maior do que no segundo caso.

Em geral, o número de negócios é muito baixo.

Quem sabe quais parâmetros do Expert Advisor devem ser alterados e em que direção aumentar o número de negócios durante a otimização?

 

Vovanic, até riu. )

Estamos todos aqui para descobrir coletivamente: quais parâmetros, em que direção e em que momento mudar para fazer um dólar)))

Razão: