ご意見をお聞かせください - ページ 4

 
angevoyageur:
あなたは、EAやバックテストの結果を何らかの方法でごまかし、初心者をだまそうとしている、そしてそれをよく知っている。

「ある意味」とは、どういう意味でしょうか?私はすでに、損切りせずに黒字になるのを待つことで、100%の試みができると言っています。浮動損失は、ダイナミックロットとロットとして使用される残高の%によって管理され、それによってマージンコールを受けることが難しくなります。
 
tonny: 以下はテスターのレポートです。明らかな理由でパラメータとEA名を省略しました。あなたはそれをチェックしたいすべてのIVEは何も隠すことはありません。

ずっといい。あなたのシステムに対する私の意見は、それはあまりにも危険だということです。あなたが口座を爆破する可能性と50%の相対的なドローダウンに耐えることができると感じるなら、それを取引する。しかし、この50%のドローダウンがどれくらいの頻度で起こるか、より良い統計を取るために、モンテカルロモードでシステムを実行することをお勧めします。そして、あなたのRisk_Of_RuinとあなたのBankRollなど。

私はちょうど目が覚めて、あなたのデータを見て、その結果をいくらか複製することができる何かをまとめることに決め、以下にコードと結果を示します。注:1回目の実行では、破産しました。2回目、3回目は以下のような結果になりました。


私の3回の実行に基づいて、私は「私の」システムは、テスト期間内に10Kを破産させる1/3の可能性を持っていると言うでしょう。あなたが表示している結果は、このシステムの静的な[Positive]パフォーマンスの1つに過ぎません。このシステムを取引する人は、「価格が戻らなかったらどうしよう」と自問自答し続けるでしょう。私のお勧めは、システムがどの程度バウンシーピリオドを予測できるかをテストするために、何千回もの実行を行うことです。また、時間枠を広げ、他のペアでテストしてください。

急遽書いたコードで、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が使用された理由その口座を破産させました。私は小さな残高のライブ口座でいくつかのスキャルピング戦略をテストし、2週間以内に最大3000%(10ドルから300ドル)を作るだろうが、共通のものは、マージンコールが最終決定権を持っているということです。しかし、このテスターのレポートでは、2年間で約100%という、スキャルピングの用語でいうところの、それほどでもない利益を上げているのである。私のスキャルピングに対する考え方は、「スキャルピングで儲けることはできるけど、長期的には儲からない。スキャルピングは、 "メイクと実行 "システムすなわち預金$ 1000として使用する必要があり、一度あなたがトリプルそれを残して、他の場所でそのお金を投資しています。Iveはまた、このSPサービス(広告サービスのために言及しない)でスキャルピング信号プロバイダを研究し、年間でもいくつかの利益は最終結果は通常、ほとんどの加入者のアカウントを "マージンコール "大規模なフローティング損失でありながら。もし、スキャルピングで儲けようと思ったら、多額の資金を入金しなければならないが、非常に小さなロットを使用し、最終的にはスキャルピング以外の戦略やそのコンセプトよりも小さな利益となるであろう。すべてのすべてで私の結論は、私は個人的にスキャルピングを好まないが、あなたが行う場合は、あなたの300%または1000%を作り、実行し、また、ほとんどのブローカーがすべてでそれを好きではないとして、そのお金を引き出すことができないかもしれません覚えているあなたのブローカーの反スキャルピングルールとそれらを遵守しようとするスキャルピング中にあまりにも早く(10分未満)あまりにも頻繁にトレードを閉じていないことである.
 
tonny:

ある意味では "どのように"? 何を議論しているのか分からないのに、非難をしないでください。私はすでに、損切りはせず、利益が出るのを待つことで、100%の試みができると言っています。浮動損失は、ダイナミックロットとロットとして使用される残高の%によって管理され、それによってマージンコールを受けることが難しくなります。
  • 説明できますか?
Mismatched charts エラー350
 
そういやmt4にエラー出したの俺だっけ?ストラテジーテストで ミスマッチが0になることはない(笑) あんたは本当に何言ってるかわからないよ。
 
tonny:
私がmt4でエラーを出しているのですか?ストラテジーテストでミスマッチが0に なることはない(笑) あんたは本当に何を言ってるのかわからないよ undertaker look alike

例えば、同じティックデータからM1からMN1を作成する場合、ほとんどエラーは発生しないはずですが・・・。

 
tonny:
ああ、私がmt4にエラーを出したのですか?ストラテジーテストでミスマッチが0になることはない(笑) あんたは本当に何言ってるかわかんないよ。

私は 何百 回もバックテストをして いますが、 このようなエラーは見たことが ありません。

とにかく、あなたは意見を求めますが、私の意見は、あなたのEAは 口座を吹き飛ばすためにのみ 使用 することが できるということです。

あなたが不正をしていると思うのは私の間違いかもしれません。2010年1月からここにいるあなたがそうでないなら、少なくともあなたはとても素朴です。

 

このようなテストを行うことが可能です

作ることができます。

戦略 高ければ最高18本買い

低ければ18本でストップロスなしの売り

この結果もトレールして(バカゲー)。

ファイル:
testresult.zip  46 kb
 
ええ、でもこの子はまるで私がエラーを作ったかのように話しています、誰か教えてあげてください、私ではなくmt4のデータからきていると。
 
このプロジェクトが完璧だと言ったのはいつだったか、私は何度も言った。私はそれを研究しているだけで、単に「成熟した」意見を求めただけだ。しかし、私が言ったように、私はスキャルピングシステムを模索しているだけで、役に立つ意見にはオープンだが、侮辱は受けない。モデレーターとしてあなたは、ハエみたいに振る舞うべきじゃない。