[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 68

 
Stells:

こんにちは。

質問 どのようにテストするのですか、誰の結果がより信頼できるのですか?

Expert Advisorでは、H1期間がいたるところで明確に規定されています。

オープン時にm1でテストしています - 損切りをクリア。

H1でテストしたところ、すべてのティックが上昇しました。

問題は、ストップ高が数点と小さいことです。利益も大きい。

もしEAが新しいバーの オープニングを明示的に制御していて、新しいバーがオープンしたときだけ動作するのであれば、新しいバーのオープニングでテストすることができます。それ以外はダニのみ。さらに、ストップは小さく、新しいバーのオープニングで明らかに吹き飛ばされます。M1ではバーが1分間に数ピップスであなたのストップを捕らえることができるからです。M1上の全てのティックをテストする。
 
artmedia70:
もしEAが新しいバーのオープニングを明示的に制御していて、新しいバーがオープンしたときだけ動作するのであれば、新しいバーのオープニングでテストすることができます。それ以外はダニのみ。さらに、ストップは小さく、新しいバーのオープニングで明らかに吹き飛ばされます。M1ではバーが1分間に数ピップスであなたのストップを捕らえることができるからです。M1上の全てのティックをテストする。

すべてのティックがH1とどう違うのか(理論上)?
 

こんにちは!私は何が間違っているのか、コードを理解するために私を助けてください。プログラミングは初めてです。mql4チュートリアルを読み、Expert Advisorのコードをたくさん見ましたが、まだ私の質問に対する答えを見つけることができないでいます。5桁の端末で、ECN口座、変動スプレッド+手数料でやってます。Expert Advisorは最も簡単で、速いМАが遅いМАを上から下へ横切ったときに売り注文を出し、逆に 速いМАが遅いМАを下から上へ横 切ったときに売り注文を 出すことができます。実はTSはもっと複雑で、まだ基本的な機能がすべてきちんと動いていないので、最適化はおろか、きちんとテストすることもできず、冗長な計算でコードを複雑にしないことにしたのです。以下はExpert Advisor自体のコードです。

#define MAGICMA  20050610
extern string text1              ="===========================MoneyManagment===========================";
extern double Lots               = 0.1;
extern string text2              ="======================Simple_Close_settings=========================";
extern double TakeProfit         = 100;
extern double StopLoss           = 100;
extern double Bezubitok          = 30; //Расстояние, через которое пройдёт цена от открытия сделки в "+", чтобы перенести СтопЛос в безубыток
extern string text3              = "===================TrailingStopLoss_settings=======================";
extern double Trailing           = 100; //Расстояние, через которое будет подтягиватся СтопЛос к текущей цене
extern double Slippage           = 3; // Допуск проскальзования цены при открытии и закрытии сделок
extern string text4              = "===================Indicator_Trade_System_settings=================";
extern int    Fast_EMA_Period    = 8;
extern int    Slow_EMA_Period    = 21;




//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
int CheckForOpen()
  {
   double X1,X2,X3,X4;
   int ticket;

   
   X1=iMA(NULL,0,Fast_EMA_Period,0,MODE_EMA,PRICE_CLOSE,1);
   X2=iMA(NULL,0,Slow_EMA_Period,0,MODE_EMA,PRICE_CLOSE,1);
   X3=iMA(NULL,0,Fast_EMA_Period,0,MODE_EMA,PRICE_CLOSE,2);
   X4=iMA(NULL,0,Slow_EMA_Period,0,MODE_EMA,PRICE_CLOSE,2);
//----
if(Volume[0]>1) return;
  {   
      //ENTRY Ask(buy, long) 
      if (X3<=X4 && X1>X2)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",",MAGICMA,0,White);
        }
      //ENTRY Bid (sell, short)
      if (X3>=X4 && X1<X2)
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",",MAGICMA,0,Red);
        }
  }
//----
  }
//+------------------------------------------------------------------+
//| Check for TrailingStop                                           |
//+------------------------------------------------------------------+
void CheckForTrailing()
 {

     if (Trailing>0) for(int i=0; i<=OrdersTotal();i++) 
     {
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if (OrderMagicNumber()==MAGICMA && OrderSymbol()==Symbol()) 
           {
            if (OrderType()==OP_BUY && Bid-OrderOpenPrice()>Trailing*Point && Bid-OrderStopLoss()>Trailing*Point)
            OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Trailing*Point,OrderTakeProfit(),0,CLR_NONE);
            if (OrderType()==OP_SELL && OrderOpenPrice()-Ask>Trailing*Point && OrderStopLoss()-Ask>Trailing*Point)
            OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0,CLR_NONE);
           }
        }
}
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double X1,X2,X3,X4;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- get Moving Average 
   X1=iMA(NULL,0,Fast_EMA_Period,0,MODE_EMA,PRICE_CLOSE,1);
   X2=iMA(NULL,0,Slow_EMA_Period,0,MODE_EMA,PRICE_CLOSE,1);
   X3=iMA(NULL,0,Fast_EMA_Period,0,MODE_EMA,PRICE_CLOSE,2);
   X4=iMA(NULL,0,Slow_EMA_Period,0,MODE_EMA,PRICE_CLOSE,2);
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //---- check order type 
     
      if(OrderType()==OP_BUY)
        {
         if(Bid>=(OrderOpenPrice()+TakeProfit*Point)||Bid<=(OrderOpenPrice()-StopLoss*Point))OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
         break;
        }
        
      if(OrderType()==OP_SELL)
        {
         if(Ask<=(OrderOpenPrice()-TakeProfit*Point)||Ask>=(OrderOpenPrice()+StopLoss*Point)) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
         break;
        }
     }
//----
  }



//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
   if(Bars<25 || IsTradeAllowed()==false) 
     return (0);
   if (AccountFreeMargin()<(100*Point*Lots))
     {
      Print("Стоп! Недостаточно средств для продолжения торговли. Свободная маржа = ", AccountFreeMargin());
      return(0);  
     }
      
   if(Trailing>0) CheckForTrailing();  
     
      
//---- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
   
 
   

   return(0);
  }
//+------------------------------------------------------------------+

もしかしたら、誰かが私の質問に答えてくれるかもしれません。

1.注文を開くとき、パラメータStopplosとTakeProfitがあるべき場所にOrderSendにnullを保持します。そこに他の数値を入れようとすると、エキスパートは取引を開きません。手動で取引を開き、すぐにSLとTPを設定できるか確認しました。

2.TP、SL、TSを100pipsに設定したのですが、スプレッドを考慮してもこのpipsの倍数でない取引が終了してしまうのはなぜでしょうか。もしかして、私の注文終了機能が働いていないのでしょうか?この場合、本来はSLを設定し、+方向の価格のみに追従させるのですが、どのようにすれば損失を限定できるのでしょうか?

3.私の証券会社では、Stop Level=100 pipsとなっていますが、手動でポジションを閉じる ときのように、Stop Levelより低いレベルを設定できるように、仮想TPとSLを設定するにはどうしたらよいでしょうか?(Ecn口座でのPipsは禁止されていません)。

4.次のようなことは可能でしょうか、また、可能であれば、逆指値をして、SLとTPによる同時決済でBreakevenに移行する(どちらのイベントが先に起こるかによる)ことは可能でしょうか。やってみたのですが、テスターでは1ポジション開いて、テスト終了まで閉じず、スワップのみ回収しています)。どちらか一方でも構いません。

回答してくださる皆様、ありがとうございました。

ファイル:
 

こんにちは ...

ひとつだけ質問

日足でフラクタルがあるとする... このフラクタル形成が終了する価格を見つける方法、例えばH1で... 価格に矢印が現れることが望ましい...

 
Cmu4:
皆さん、EAはどのようにして特定のサーバーとポートに接続するのでしょうか?そ んなことが可能な のか?
では、ここには専門家はいないのでしょうか?
 
Cmu4:
皆さん、EAはどのようにして特定のサーバーとポートに接続するのでしょうか?そ んなことが可能な のか?

ソケットに接続する、あるいはhttpで情報を読み取るとはどういうことですか?
 
こんにちは。簡単な、そしておそらく愚かな質問があります。ストラテジーテスターは 間違いを犯すことがあるのか...ストラテジーのテストはどのような方法で行っているのか...よろしくお願いします。
 

ひとつだけ質問

日足でフラクタルがあるとする... このフラクタル形成が終了する価格を見つける方法、例えばH1で... 価格に矢印が現れることが望ましい...

 

こんにちは。

init()、start()、deinit()の特殊関数について質問です。

チュートリアルを含めてご存知のように、この特殊な関数を終了(exit)させるには、演算子Returnを完全に書かなければなりません(例えば、条件演算子IF-ELSEなど)。

戻り値演算子(例:条件演算子IF-ELSEにおいて)。

では、その戻り値はどのような意味を持つのでしょうか。例えば、Return(0)と、場合によっては他の整数(Return(1))です。

 

皆さん、こんにちは。

FX5_Divergence_V2.1というインジケーターを少し編集したいのですが、よろしくお願いします。

3画面で作業しています。ウィンドウに表示されるインジケータは、その名前と他のいくつかの値が表示され、それらはインジケータを見るために非常に邪魔になります。 この数値のせいで、インジケーターノードが見えず、比較しにくいことがよくあります(スクリーンショットの黄色で囲った部分)。

(インジケーター名のみを表示し、その他の数字を表示しないように修正したいのですが。)

指標とスクリーンショットは付録のとおりです。


ご協力いただける方、よろしくお願いします。)


ファイル: