Ваше мнение - страница 4

 
angevoyageur:
Вы пытаетесь обмануть новичков, обманывая советника и/или результаты бэктестов, и вы это прекрасно знаете.

"В некотором роде" Как? Не обвиняйте, пока вы не знаете, о чем спорите. Я уже сказал, что он пытается на 100%, не закрывая ничего в убыток, а ожидая, пока оно станет прибыльным. Плавающие убытки будут управляться динамическими лотами и % от баланса, используемого в качестве лотов, таким образом, затрудняя маржин-колл.
 
tonny: Вот отчет тестера. Я опустил параметры и название ea по очевидным причинам. Проверяйте как хотите, мне нечего скрывать.

Намного лучше. Мое мнение о вашей системе заключается в том, что она слишком рискованная. Рискованная, однако, это относительный термин, если вы чувствуете, что можете жить с относительными просадками в 50% с шансом уничтожить счет ???, тогда торгуйте. Однако я бы посоветовал вам запустить вашу систему в режиме Монте-Карло, чтобы получить более точную статистику того, как часто случаются эти 50% просадок. И ваш Risk_Of_Ruin против вашего BankRoll и т.д.

Я только что проснулся и увидел ваши данные, решил собрать что-то вместе, что могло бы в некоторой степени повторить результаты, и вот коды и результаты ниже. Примечание: Во время моего 1-го запуска, он обанкротился. 2-й и 3-й прогоны выглядят так, как показано ниже:


Основываясь на моих трех прогонах, я бы сказал, что у "моей" системы 1 к 3 шансы обанкротить 10k в течение тестируемого периода времени. Результат, который вы показываете, - это всего лишь одна статическая [положительная] характеристика системы. Любой, кто торгует по этой системе, будет постоянно задавать себе вопрос: "А что, если цена никогда не вернется?". Я рекомендую вам произвести тысячи прогонов, чтобы проверить, насколько хорошо ваша система предсказывает периоды колебаний. Также расширьте таймфрейм и протестируйте на других парах.

Коды написаны наспех и не предназначены для использования в Real_Money. Возможно, позже я удалю эти коды.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Файлы:
 
Я лично не верю в скальпинг. Это просто забавный проект, и я хотел узнать мнение людей, которые, возможно, уже работали здесь в области скальпинга. Некоторые уровни tp и таймфреймы обанкротили счет, поэтому был использован таймфрейм H1, который обычно не используется для скальпинга, так как он дает немного более точное предсказание тренда, чем минутные таймфреймы. Я протестировал несколько скальпинговых стратегий на реальном счете с небольшим балансом и заработал до 3000% (от $10 до $300) менее чем за две недели, но, как правило, маржин-колл оставался последним словом. В этом проекте я попытался сделать что-то, что возможно скальпировать и выиграть в долгосрочной перспективе, хотя прибыльность была избита, поэтому, как вы можете видеть, отчет тестера сделал только около 100% за два года, что в терминах скальпинга не так много. Мое мнение о скальпинге сводится к тому, что да, вы можете заработать деньги на скальпинге, но не в долгосрочной перспективе. Скальпинг должен использоваться как система "сделай и беги", т.е. внесите депозит в $1000 и, как только вы утроите его, уходите и инвестируйте эти деньги в другое место. Я также исследовал поставщиков сигналов для скальпинга в этом сервисе (не буду упоминать из-за рекламы), и хотя некоторые из них приносят прибыль даже в течение года, конечным результатом являются огромные плавающие убытки, которые обычно "маржин колл" на счетах большинства подписчиков. Если вы хотите зарабатывать на скальпинге, вам придется вносить большие суммы денег, но использовать очень маленькие лоты, и в итоге прибыль будет меньше, чем при нескальпирующих стратегиях, и именно эту концепцию я и попробовал здесь. В общем, мой вывод таков: лично я не предпочитаю скальпинг, но если вы предпочитаете, то делайте свои 300% или 1000% и бегите, а также помните, что ваш брокер может просто не позволить вам вывести эти деньги, так как большинство брокеров вообще не любят этого, проверьте у своего брокера правила против скальпинга и во время скальпинга старайтесь придерживаться их, не закрывайте сделки слишком рано (менее 10 минут) слишком часто.
 
tonny:

"В некотором роде" Как? Не надо обвинять, пока вы не знаете, о чем спорите. Я уже сказал, что он пытается на 100%, не закрывая ничего в убыток, а ожидая, пока оно станет прибыльным. Плавающие убытки будут управляться динамическими лотами и % от баланса, используемого в качестве лотов, таким образом, затрудняя маржин-колл.
  • Можете ли вы объяснить это?
Ошибки несовпадения графиков350
 
О, так я тот, кто поставил ошибки на mt4? Нет времени, когда вы можете протестировать стратегию и получить 0 несовпадающих ошибок lol вы действительно не знаете, что вы говорите undertaker выглядят одинаково
 
tonny:
О, так я тот, кто ставит ошибки на mt4? Нет времени, когда вы можете протестировать стратегию и получить 0 несовпадающих ошибок lol вы действительно не знаете, что вы говорите undertaker выглядите одинаково

Очень возможно иметь нулевые ошибки несовпадения графиков ... это просто зависит от ваших данных и того, как они были построены, например, создание M1 и MN1 из одних и тех же тиковых данных должно привести к очень небольшим ошибкам ....

 
tonny:
О, так это я тот, кто выложил ошибки на mt4? Нет времени, когда вы можете протестировать стратегию и получить 0 несовпадающих ошибок lol вы действительно не знаете, что вы говорите undertaker выглядеть одинаково

Я провел сотни бэктестов и никогда не видел этой ошибки.

Влюбом случае, вы хотите знать мнение, мое заключается в том, что ваш советник может быть использовантолько для того, чтобы уничтожитьсчет.

Может быть, я ошибаюсь, когда думаю, что вы жульничаете, извините за это. Если это не так, так как вы здесь с января 2010 года, то вы очень наивны, по крайней мере.

 

Можно сделать такой тест

Я тоже могу его сделать

стратегия если высокий самый высокий 18 баров покупаем

если низкий самый низкий 18 баров продаем без стоплосса

также с трейлингом этот результат (глупая игра)

Файлы:
testresult.zip  46 kb
 
Да, но этот парень говорит, как будто я создал ошибки, кто-нибудь скажите ему, что они исходят от данных mt4, а не от меня.
 
В какой момент я сказал, что проект идеален, я говорил это много раз, я просто исследую его и просто попросил "зрелого" мнения эта прибыль намного меньше, чем мои уже успешные системы, но, как я сказал, я просто исследую скальпинговые системы и открыт для полезного мнения, но я не буду принимать оскорбления, и как модератор вы не должны вести себя как домашняя муха вы должны быть более зрелыми, чем это мой результат теста естественно из mt4, поэтому есть некоторые ошибки в данных mt4, так как я не ввел код в него, чтобы изменить что-либо.
Причина обращения: