Cercasi la tua opinione - pagina 4

 
angevoyageur:
Stai cercando di ingannare i principianti imbrogliando il tuo EA e/o i risultati del backtest in qualche modo, e lo sai molto bene.

"Come? Non fare accuse mentre non sai di cosa stai discutendo. Ho già detto che tenta il 100% non chiudendo nulla in perdita ma aspettando che diventi redditizio. Le perdite fluttuanti saranno gestite dai lotti dinamici e dalla % del saldo utilizzato come lotti, rendendo così difficile colpire il margin call.
 
tonny: Ecco il rapporto del tester. Ho omesso i parametri e il nome dell'ea per ovvi motivi. Controllate quanto volete, non ho nulla da nascondere.

Molto meglio. La mia opinione sul tuo sistema è che è troppo rischioso. Rischioso però è un termine relativo, se pensi di poter vivere con relativi draw-down del 50% con la possibilità di far saltare il conto, allora fai trading. Tuttavia, ti consiglio di eseguire il tuo sistema in modalità Monte-Carlo per ottenere una migliore statistica di quanto spesso accade questo 50% di draw-downs. E il tuo Risk_Of_Ruin contro il tuo BankRoll ecc.

Mi sono appena svegliato e ho visto i tuoi dati, ho deciso di mettere insieme qualcosa che potesse in qualche modo duplicare i risultati ed ecco i codici e i risultati qui sotto. Nota: al mio 1° giro, è andato in bancarotta. Il 2° e 3° run assomiglia al risultato qui sotto:


Sulla base delle mie tre corse, direi che il 'mio' sistema ha una probabilità di 1 su 3 di far fallire 10k nel periodo di tempo testato. Il risultato che stai visualizzando è solo una performance statica [positiva] del sistema. Chiunque faccia trading con questo sistema continuerebbe a chiedersi "e se il prezzo non tornasse più? La mia raccomandazione è che tu produca migliaia di cicli per testare quanto bene il tuo sistema predice i periodi di rimbalzo. Estendi anche il time-frame e prova su altre coppie.

Codici scritti frettolosamente e non destinati all'uso con Real_Money. Potrei rimuovere i codici più tardi.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
File:
 
Personalmente non credo nello scalping. Questo è solo un progetto divertente e volevo l'opinione di persone che potrebbero essersi soffermate qui prima nel campo dello scalping. Alcuni livelli di tp e timeframe hanno fatto fallire il conto, ecco perché è stato usato l'H1, che non è comunemente un timeframe di scalping, in quanto fornisce una previsione di tendenza un po' più accurata rispetto ai timeframe minuti. Ho testato alcune strategie di scalping sul conto dal vivo con saldi minuscoli e farei fino al 3000% (da $10 a $300) in meno di due settimane, ma la cosa comune è che la chiamata di margine avrebbe l'ultima parola. Questo proiettato ho tentato qualcosa che potrebbe eventualmente fare lo scalping e vincere nel lungo periodo anche se la redditività ha preso una batosta che è il motivo per cui come si può vedere il rapporto tester fatto solo circa il 100% in due anni che in termini di scalping non è molto. Il mio punto di vista sullo scalping è arrivato a sì, è possibile fare soldi con lo scalping ma non nel lungo periodo. Lo scalping dovrebbe essere usato come un sistema "make and run", cioè depositare $1000 e una volta triplicati lasciare e investire quei soldi altrove. Ho anche ricercato i fornitori di segnali di scalping in questo servizio di sp (non menzionerò a causa di servizi pubblicitari) e mentre alcuni profitti anche per un anno il risultato finale è massiccio di perdite fluttuanti che di solito "margin call" la maggior parte dei conti degli abbonati. Se uno è quello di fare soldi scalping si dovrebbe depositare grandi quantità di denaro, ma utilizzare lotti molto piccoli e il risultato finale sarebbe più piccolo profitti di strategie non scalping e questo è il concetto che ho provato qui. Tutto sommato la mia conclusione è che personalmente non preferisco lo scalping, ma se lo fai, allora fai il tuo 300% o 1000% e corri e ricorda anche che il tuo broker potrebbe non permetterti di ritirare quel denaro, dato che la maggior parte dei broker non lo gradisce affatto; controlla con il tuo broker le regole anti scalping e mentre fai scalping cerca di aderirvi, non chiudere troppo presto (meno di 10 minuti) gli scambi troppo spesso.
 
tonny:

" Come? Non fare accuse mentre non sai di cosa stai discutendo. Ho già detto che tenta il 100% non chiudendo nulla in perdita ma aspettando che diventi redditizio. Le perdite fluttuanti saranno gestite dai lotti dinamici e dalla % del saldo utilizzato come lotti, rendendo così difficile colpire il margin call.
  • Puoi spiegarlo?
Errori di grafici non corrispondenti350
 
Oh, quindi sono io quello che ha messo gli errori su mt4? Non c'è nessun tempo in cui si può testare la strategia e si ottengono 0 errori non corrispondenti lol non sai veramente quello che stai dicendo undertaker look alike
 
tonny:
Oh, quindi sono io quello che ha messo gli errori su mt4? Non c'è un momento in cui puoi fare un test di strategia e ottieni 0 errori non corrispondenti lol non sai veramente cosa stai dicendo undertaker look alike

È molto possibile avere zero errori di corrispondenza nei grafici... dipende semplicemente dai tuoi dati e da come sono stati costruiti, per esempio creando M1 a MN1 dagli stessi dati in tick dovrebbe risultare in pochissimi errori...

 
tonny:
Oh, quindi sono io quello che ha messo gli errori su mt4? Non c'è un momento in cui si può testare la strategia e si ottengono 0 errori non corrispondenti lol tu veramente non sai cosa stai dicendo undertaker look alike

Ho fatto centinaia di backtest e non ho mai visto questo errore.

Comunque, vuoi un'opinione, la mia è che il tuo EA può essere usatosolo per farsaltare un conto.

Forse mi sbaglio quando penso che stai barando, mi dispiace per questo. Se il tuo non sono, come il tuo qui da gennaio 2010, sei molto ingenuo, almeno.

 

È possibile fare un tale test

Posso farlo anche io

strategia se alto più alto 18 barre comprare

se basso più basso 18 barre vendere senza stoploss

con anche trailing questo risultato (gioco stupido)

File:
testresult.zip  46 kb
 
Sì, ma questo ragazzo sta parlando come se avessi creato gli errori, qualcuno gli dica che provengono dai dati di mt4, non da me.
 
In quale momento ho detto che il progetto è perfetto, l'ho detto molte volte che sto solo facendo ricerche e ho semplicemente chiesto un'opinione "matura", questo profitto è di gran lunga inferiore ai miei sistemi di successo, ma come ho detto, sto solo esplorando sistemi di scalping e sono aperto a opinioni utili, ma non accetto insulti e come moderatore non dovresti comportarti come una mosca, dovresti essere più maturo di così, il mio risultato del test è naturale da mt4, ecco perché ci sono alcuni errori nei dati di mt4, perché non ho iniettato codice per modificare nulla