Sua opinião queria - página 4

 
angevoyageur:
Você está tentando enganar os iniciantes, enganando de alguma forma seus resultados de EA e/ou backtest, e você sabe muito bem disso.

"De certa forma" Como? não fazer acusações enquanto você não sabe sobre o que está discutindo. Eu já disse que ele tenta 100% não fechar nada com prejuízo, mas esperar que ele se torne lucrativo. As perdas flutuantes serão administradas pelos lotes dinâmicos e % de equilíbrio usados como lotes, tornando assim difícil atingir a chamada de margem.
 
tonny: Aqui está o relatório do testador. Eu omiti os parâmetros e o nome ea por razões óbvias. Verifique tudo o que você quer que eu não tenha nada a esconder.

Muito melhor. Minha opinião sobre seu sistema é que ele é muito arriscado. Arriscado, porém, é um termo relativo, se você sente que pode conviver com sorteios relativos de 50% com uma chance de estragar a conta ???? então negocie-a. No entanto, aconselho-o a operar seu sistema no modo Monte-Carlo para obter uma melhor estatística de como - muitas vezes - esses 50% de draw-downs acontecem. E seu Risk_Of_Ruin vs. seu BankRoll etc.

Acabo de acordar e ver seus dados, decidi juntar algo que poderia duplicar um pouco os resultados e aqui estão os códigos e resultados abaixo. Nota: Na minha primeira corrida, faliu. A 2ª e 3ª corridas se parecem com o resultado abaixo:


Com base em minhas três corridas, eu diria que 'meu' sistema tem uma chance 1 em 3 de falir 10k dentro do período de tempo testado. O resultado que você está exibindo é apenas um desempenho estático [Positivo] do sistema. Qualquer pessoa que comercialize este sistema continuará se perguntando "e se o preço nunca mais voltar?". Minha recomendação é que você produza milhares de corridas para testar o quão bem seu sistema prevê períodos de saltos. Também estenda o período de tempo e teste em outros pares.

Códigos escritos apressadamente e não destinados ao uso do Real_Money. Eu poderia remover os códigos mais tarde.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#property copyright "Copyright © Ubzen"
#property link      "https://www.mql5.com/en/users/ubzen"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define Magic_Nm 1
#define Scalp_Pi 5
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//extern int MonteCarlo=1;//Optimize 1->100 Equal_100 Random_Runs
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void start(){
    if(!isNewBar()){return;}
    Order_Origination();
    Order_Termination();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Order_Origination(){
    if(Count_OrderS_Symb()>0){return;}
    if(!isRange()){return;}
    Order_Send(Symbol(),Random_OT(),Compound());
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Order_Termination(){
    for(int i=OrdersTotal()-1; i>=0; i--){
        if(!OrderSelect(i,SELECT_BY_POS)){continue;}
        if(OrderMagicNumber()!=Magic_Nm){continue;}
        string Sy=Symbol();
        if(OrderSymbol()!=Sy){continue;}
        if(OrderProfit()<0){continue;}
        double  OpnPrc=OrderOpenPrice();
        double  ClsPrc=OrderClosePrice();
        double  Diff=MathAbs(ClsPrc-OpnPrc);
        double  inPip=p2pips(Sy,Diff);
        int     inInt=p2i(Sy,inPip);
        if(inInt<Scalp_Pi){return;}
        Close_Order_Ticket(OrderTicket());
    }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool isNewBar(){
    static datetime BarTime;
    datetime MinOpen=iTime(Symbol(),PERIOD_M1,0);
    if(BarTime!=MinOpen){BarTime=MinOpen; return(true);}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Random_OT(){
    static double Seed; if(Seed==0){Seed=GetTickCount();}
    Seed+=0.9; MathSrand(Seed); int OrType=MathRand()%2;
    if(OrType%2==0){return(OP_BUY);}else{return(OP_SELL);}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Symb_Digit(string Symb){
    return(MarketInfo(Symb,MODE_DIGITS));
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int p2i(string Symb, double X){
    /*Converts Price_2_Integer*/ int SymDigit=Symb_Digit(Symb);
    if(SymDigit%2==0){if(SymDigit==2){int Y=100;}else{Y=10000;}
    }else{if(SymDigit==3){Y=1000;}else{Y=100000;}} return(X*Y);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double p2pips(string Symb, double X){//Points2Pips
    int D=Symb_Digit(Symb); if(D%2==1){X/=10;} return(X);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double p2points(string Symb, double X){//Pips2Points
    int D=Symb_Digit(Symb); if(D%2==1){X*=10;} return(X);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool isRange(){ int Range=10;
    string Sy=Symbol(); int Tf=PERIOD_M5; int Pd=99;
    int Dev=1; int Sh=0; int App=PRICE_LOW; int iDex=0;
    double Band_Up=iBands(Sy,Tf,Pd,Dev,Sh,App,MODE_UPPER,iDex);
    double Band_Dn=iBands(Sy,Tf,Pd,Dev,Sh,App,MODE_LOWER,iDex);
    int iBand_Up=p2i(Sy,Band_Up); int iBand_Dn=p2i(Sy,Band_Dn);
    int Dif=iBand_Up-iBand_Dn;
    int Range2Points=p2points(Sy,Range);
    if(Dif<Range2Points){return(true);}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Count_OrderS_Symb(){
    int Cnt; for(int i=OrdersTotal()-1; i>=0; i--){
        if(!OrderSelect(i,SELECT_BY_POS)){continue;}
        if(OrderMagicNumber()!=Magic_Nm){continue;}
        if(OrderSymbol()!=Symbol()){continue;} Cnt++;}
return(Cnt);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool Close_Order_Ticket(int Tkt){
    if(!OrderSelect(Tkt,SELECT_BY_TICKET)){return;}
    if(OrderType()>1){return;} if(OrderCloseTime()!=0){return;}
    if(!IsTesting()){while(IsTradeContextBusy()){Sleep(500);}}
    double Ocp=OrderClosePrice(); double Ol=OrderLots();
    bool Res=OrderClose(Tkt,Ol,Ocp,0,0);
return(Res);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Order_Send(string Symb, int OType, double Lots){
    if(AccountFreeMarginCheck(Symb,OType,Lots)<=0){return;}
    if(GetLastError()==134){return;}

    int Order_Slip=0; color OrColor;
    if(OType==OP_BUY){OrColor=Blue;}
    if(OType==OP_SELL){OrColor=Red;}
    if(OType==OP_BUY){double    P=MarketInfo(Symb,MODE_ASK);}
    if(OType==OP_SELL){         P=MarketInfo(Symb,MODE_BID);}
    
    int OrTicket=OrderSend(
        Symb,OType,Lots,P,Order_Slip,
        0,0,"_",Magic_Nm,0,OrColor);
return(OrTicket);    }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Compound(){
    double BrkMinLot=MarketInfo(Symbol(),MODE_MINLOT);
    double BrkMaxLot=MarketInfo(Symbol(),MODE_MAXLOT);
    double BrkLotStp=MarketInfo(Symbol(),MODE_LOTSTEP);
    double LotSize=AccountBalance()/200*0.01;
    if(LotSize<BrkMinLot){LotSize=BrkMinLot;}
    if(LotSize>BrkMaxLot){LotSize=BrkMaxLot;}
    return(LotSize);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Arquivos anexados:
 
Eu pessoalmente não acredito em escalpelização. Este é apenas um projeto divertido e eu queria a opinião de pessoas que talvez já tenham morado aqui antes no campo do escalpamento. Alguns níveis e prazos de tp faliram a conta e é por isso que o H1, que não é comumente um prazo de escalpe, foi usado porque dá uma previsão de tendência um pouco mais precisa do que os prazos de minutos. Eu testei algumas estratégias de escalonamento em conta ao vivo com saldos minúsculos e perfazia até 3000% (de $10 a $300) em menos de duas semanas, mas o comum é que a chamada de margem teria a palavra final. Isto projetou algo que poderia possivelmente escalpar e ganhar no longo prazo, embora a rentabilidade tenha levado uma surra, por isso, como você pode ver, o relatório do testador fez cerca de 100% em dois anos, o que em termos de escalpe não é tanto assim. Minha opinião sobre o escalpe chegou a sim, você pode ganhar dinheiro com o escalpe, mas não a longo prazo. O escalpamento deve ser usado como um sistema "make and run", ou seja, depositar US$ 1000 e uma vez que você triplique, deixar e investir esse dinheiro em outro lugar. Eu também pesquisei fornecedores de sinais de escalonamento neste sp serviços (não mencionarei devido a serviços de publicidade) e enquanto algum lucro mesmo por um ano, o resultado final são perdas flutuantes massivas que normalmente "chamam a margem" da maioria das contas dos assinantes. Para ganhar dinheiro com o scalping, você teria que depositar grandes quantias de dinheiro, mas usar lotes muito pequenos e o resultado final seria lucros menores do que as estratégias sem scalping e esse é o conceito que eu tentei aqui. Em suma, minha conclusão é que eu pessoalmente não prefiro o escalpamento, mas se o fizer, então faça seus 300% ou 1000% e corra e também lembre-se que seu corretor pode não permitir que você retire esse dinheiro, já que a maioria dos corretores não gosta que ele cheque com seu corretor as regras anti-calpamento e enquanto o escalpamento tenta aderir a elas, não feche as negociações muito cedo (menos de 10 minutos) com muita freqüência.
 
tonny:

"De certa forma" Como? não fazer acusações enquanto você não sabe sobre o que está discutindo. Eu já disse que ele tenta 100% não fechar nada com prejuízo, mas esperar que ele se torne lucrativo. As perdas flutuantes serão administradas pelos lotes dinâmicos e % de equilíbrio usados como lotes, tornando assim difícil atingir a chamada de margem.
  • Você pode explicar isso?
Erros de gráficos não correspondentes350
 
oh então sou aquele que colocou os erros no mt4? Não há tempo para testar a estratégia e você recebe 0 erros não correspondidos rs você realmente não sabe o que você está dizendo, agente funerário parece igual
 
tonny:
oh então sou aquele que colocou os erros no mt4? Não há tempo para testar a estratégia e você recebe 0 erros não correspondentes rs você não sabe realmente o que está dizendo, agente funerário é parecido...

É muito possível ter zero erros de gráficos não correspondentes . . depende simplesmente de seus dados e de como eles foram construídos, por exemplo, criar M1 a MN1 a partir dos mesmos dados de tick deve resultar em muito poucos erros . .

 
tonny:
oh então sou aquele que colocou os erros no mt4? Não há tempo para testar a estratégia e você recebe 0 erros não correspondidos rs você realmente não sabe o que está dizendo, agente funerário parece igual

Fiz centenas de retrocessos e nunca vi este erro.

De qualquer forma, você quer uma opinião, a minha é que a sua EA só pode ser usada para explodir uma conta.

Talvez eu esteja errado quando penso que você está trapaceando, desculpe-me por isso. Se você não o é, como o é aqui desde janeiro de 2010, você é muito ingênuo, pelo menos.

 

É possível fazer tal teste

Eu também posso fazer isso

estratégia se a maior compra de 18 barras

se os 18 bares mais baixos não vendem nenhuma perda de carga

também com este resultado (jogo tolo)

Arquivos anexados:
testresult.zip  46 kb
 
Yer mas este garoto está falando como se eu tivesse criado os erros que alguém lhe disse que vêm dos dados do mt4 e não de mim
 
Em que momento eu disse que o projeto é perfeito eu disse que muitas vezes eu apenas o pesquisei e simplesmente pedi uma opinião "madura" este lucro é muito menor do que meus sistemas já bem sucedidos, mas como eu disse eu apenas estou explorando sistemas de escalpe e estou aberto a opiniões úteis, mas eu não vou aceitar insultos e como moderador você não deveria estar se comportando como uma mosca doméstica você deveria ser mais maduro do que este meu resultado do teste é natural do mt4 e é por isso que existem alguns erros nos dados do mt4, pois eu não injetou código nele para alterar qualquer coisa