Votre avis est souhaité - page 4

 
angevoyageur:
Vous essayez de tromper les débutants en trichant votre EA et/ou les résultats du backtest d'une certaine manière, et vous le savez très bien.

"Comment ? Ne faites pas d'accusations alors que vous ne savez pas de quoi il s'agit. J'ai déjà dit qu'il tente 100% en ne fermant rien à perte mais en attendant qu'il devienne profitable. Les pertes flottantes seront gérées par les lots dynamiques et le pourcentage du solde utilisé comme lots, ce qui rendra difficile l'appel de marge.
 
tonny: Voici le rapport du testeur. J'ai omis les paramètres et le nom de l'ea pour des raisons évidentes. Vérifiez-le autant que vous voulez, je n'ai rien à cacher.

Beaucoup mieux. Mon opinion sur votre système est qu'il est trop risqué. Cependant, le risque est un terme relatif, si vous pensez que vous pouvez vivre avec des retraits relatifs de 50% avec une chance de faire sauter le compte, alors faites-le. Cependant, je vous conseille d'exécuter votre système en mode Monte-Carlo pour obtenir une meilleure statistique de la fréquence de ces 50% de draw-downs. Et votre Risk_Of_Ruin par rapport à votre BankRoll, etc.

Je viens de me réveiller et j'ai vu vos données, j'ai décidé de mettre en place quelque chose qui pourrait en quelque sorte reproduire les résultats et voici les codes et les résultats ci-dessous. Note : Lors de mon 1er passage, il a fait faillite. Les 2ème et 3ème exécutions ressemblent au résultat ci-dessous :


Sur la base de mes trois exécutions, je dirais que "mon" système a une chance sur trois de mettre 10 000 dollars en faillite pendant la période testée. Le résultat que vous affichez n'est qu'une performance statique [positive] du système. Toute personne négociant ce système se demanderait sans cesse "que se passera-t-il si le prix ne remonte jamais ?". Je vous recommande de produire des milliers d'exécutions afin de tester la capacité de votre système à prédire les périodes de rebond. Étendez également la période de temps et testez sur d'autres paires.

Codes écrits à la hâte et non destinés à être utilisés en Real_Money. Il se peut que j'enlève ces codes plus tard.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Dossiers :
 
Je ne crois pas personnellement au scalping. C'est juste un projet amusant et je voulais l'opinion des gens qui ont peut-être habité ici avant dans le domaine du scalping. Certains niveaux de tp et de délais ont mis le compte en faillite, c'est pourquoi H1, qui n'est pas communément un délai de scalping, a été utilisé car il donne une prédiction de tendance un peu plus précise que les délais de minute. J'ai testé quelques stratégies de scalping sur un compte réel avec des soldes minuscules et j'ai fait jusqu'à 3000% (de 10 à 300 dollars) en moins de deux semaines, mais la chose commune est que l'appel de marge a le dernier mot. Cette projection, j'ai essayé quelque chose qui pourrait éventuellement scalper et gagner à long terme bien que la rentabilité a pris une raclée c'est pourquoi comme vous pouvez le voir le rapport de test a fait juste environ 100% en deux ans qui en termes de scalping n'est pas que beaucoup. Mon point de vue sur le scalping est le suivant : oui, vous pouvez gagner de l'argent en scalpant mais pas sur le long terme. Le scalping doit être utilisé comme un système "make and run", c'est-à-dire que vous déposez 1000 $ et une fois que vous l'avez triplé, partez et investissez cet argent ailleurs. J'ai également fait des recherches sur les fournisseurs de signaux de scalping dans les services de ce site (je ne les mentionnerai pas en raison des services de publicité) et alors que certains profitent même pendant un an, le résultat final est des pertes flottantes massives qui appellent généralement la plupart des comptes des abonnés. Si l'on veut gagner de l'argent en scalpant, il faut déposer de grosses sommes d'argent mais utiliser de très petits lots et le résultat final serait des profits plus petits que les stratégies non scalp et c'est le concept que j'ai essayé ici. Dans l'ensemble, ma conclusion est que je ne préfère pas personnellement le scalping, mais si vous le faites, alors faites vos 300% ou 1000% et courez et rappelez-vous aussi que votre courtier pourrait ne pas vous permettre de retirer cet argent, car la plupart des courtiers n'aiment pas du tout cela. Vérifiez avec votre courtier les règles anti-scalping et pendant que vous faites du scalping, essayez d'y adhérer, ne fermez pas les transactions trop tôt (moins de 10 minutes) trop souvent.
 
tonny:

" Comment ? Ne faites pas d'accusations alors que vous ne savez pas ce que vous discutez. J'ai déjà dit qu'il tente 100% en ne fermant rien à perte mais en attendant qu'il devienne rentable. Les pertes flottantes seront gérées par les lots dynamiques et le % du solde utilisé comme lots, ce qui rendra difficile l'appel de marge.
  • Pouvez-vous l'expliquer ?
Erreurs de tableaux mal assortis350
 
oh donc c'est moi qui ai mis les erreurs sur mt4 ? Il n'y a aucun moment où tu peux faire un test de stratégie et obtenir 0 erreur de correspondance lol tu ne sais vraiment pas ce que tu dis, undertaker se ressemble.
 
tonny:
oh donc c'est moi qui ai mis les erreurs sur mt4 ? Il n'y a pas un moment où vous pouvez faire un test de stratégie et vous obtenez 0 erreur de correspondance lol vous ne savez vraiment pas ce que vous dites undertaker look alike

Il est tout à fait possible de ne pas avoir d'erreurs dans les graphiques... cela dépend simplement de vos données et de la façon dont elles ont été construites, par exemple créer M1 et MN1 à partir des mêmes données en tick devrait résulter en très peu d'erreurs....

 
tonny:
oh donc c'est moi qui ai mis les erreurs sur mt4 ? Il n'y a pas de moment où tu peux faire un test de stratégie et où tu obtiens 0 erreur de correspondance lol tu ne sais vraiment pas ce que tu dis undertaker ressemble à un autre.

J'ai fait des centaines de backtest et je n'ai jamais vu cette erreur.

De toute façon, vous voulez une opinion, la mienne est que votre EA ne peut être utiliséque pour fairesauter un compte.

Je me trompe peut-être quand je pense que vous trichez, désolé pour cela. Si vous ne l'êtes pas, comme vous êtes ici depuis janvier 2010, vous êtes très naïf, au moins.

 

Il est possible de faire un tel test

Je peux aussi le faire

stratégie si haut le plus haut 18 barres acheter

si bas 18 barres plus bas vendre sans stoploss

avec également trailing ce résultat (jeu stupide)

Dossiers :
testresult.zip  46 kb
 
Oui mais ce garçon parle comme si j'avais créé les erreurs quelqu'un lui a dit que cela venait des données de mt4 pas de moi.
 
A quel moment j'ai dit que le projet était parfait, je l'ai dit plusieurs fois, je suis juste en train de faire des recherches et j'ai simplement demandé une opinion "mature". Ce projet est beaucoup moins rentable que mes systèmes déjà performants mais comme je l'ai dit, je suis juste en train d'explorer les systèmes de scalping et je suis ouvert aux opinions utiles mais je ne prendrai pas d'insultes et en tant que modérateur, vous ne devriez pas vous comporter comme une mouche du coche, vous devriez être plus mature que cela.