MQLの目利きの方に質問です - ページ 10

 
Rita:

あ、まだ考えてました :)

もし

if (NumberOfPositions(NULL, OP_BUY,Magic)>=2 && NumberOfPositions(NULL,OP_SELL,Magic)>=2) {
 for{
// а сюда счетчик, по которому 2 раза пройдет
                    ClosePosFirstProfit(NULL,OP_BUY, Magic);
                    ClosePosFirstProfit(NULL,OP_SELL, Magic);
}
}
なーんだ?

 
アブザスク ありがとうございます!試してみます。
 
こんにちは!最近MQL4の書き方を学び始めたばかりなのですが、組み込みのインジケーターではなく、Code Baseから取得したインジケーターをどのように(どのコマンドで)接続できるのかがわかりません。教えてください!
 
savage_pinguin:
こんにちは!最近MQL4の書き方を学び始めたばかりなのですが、組み込みのインジケーターではなく、Code Baseから取得したインジケーターをどのように(どのコマンドで)接続できるのかがわかりません。教えてください!

iCustom()で支援
 

午後

 if  ( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
// если линии пересеклись - открываем позицию
   ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,
                                             "Хи-Хи",MagicNum,0,CLR_NONE);
     if(ticket < 0) { Print("Ошибка открытия ордера BUY #", GetLastError()); 
               Sleep(10000);   return (0); }
   }

Expert Advisorは、iMAOnArray モードでMAインジケータが接続されているカスタムインジケータ Accumulation2MAを 使用します。

入退場信号がラインクロス!?

何が問題なのか理解できない。しかし、入退場信号の半分は「図らずも」不正解になっている!理由はない!

閉じるときも同じです。

 for (int v=0; v<OrdersTotal(); v++)                             {//сортируем       
      if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES))               {//перебираем           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNum)   {//выбираем 
//-----------------------------------------------------                  
if (OrderType() == OP_SELL) {//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                 return(0); // выходим
                }   
......

このようにして、ほぼ半数のトレードが見逃されているのです。何が問題なのか、教えてください。

条件は一番シンプル! 線が明らかに動いている!しかし、ポジションは常にオープン/クローズとは限らないのです ジャーナルは "沈黙 "している。

矢印で示しました。

//------заполняем массив значениями Accumulation2MA -----------------
double Accumulation2MA[50];
int    i=0;  while (i<50)  {
Accumulation2MA[i]= iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0, i);
                  i++;     }
//------Вешаем на Accumulation2MA - линию МА ---------------
ArraySetAsSeries(Accumulation2MA,true);
double MA_0 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,0);
double MA_1 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,1);
double Accumulation2MA_0=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,0);
double Accumulation2MA_1=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,1);
 
Rita:

午後

Expert Advisorは、iMAOnArray モードでMAインジケータが接続されているカスタムインジケータAccumulation2MAを 使用します。

入退場信号がラインクロス!?

何が問題なのか理解できない。しかし、入退場信号の半分は「図らずも」不正解になっている!理由はない!

閉じるときも同じです。

このようにして、ほぼ半数のトレードが見逃されているのです。何が問題なのか、教えてください。

条件は一番シンプル! 線が明らかに動いている!しかし、ポジションは常にオープン/クローズとは限らないのです ジャーナルは "沈黙 "している。

矢印で表示した。

もしかしたら、ティックを飛ばした時に起こるかもしれません。つまり、Start() の実行中に新しいティックが到着し (その中で条件が満たされる)、Start() の実行中には無視されます。

次のティックでは、その条件が満たされていない、つまり消えているのです。

実際、インジケーターラインの 交差は非常に違和感のある信号で、私は長い間使っていません。ある指標から別の指標を引いて、ゼロクロスを追跡するのがベターです。しかし、それは好みの問題です。

 
Rita:

午後

Expert Advisorは、iMAOnArray モードでMAインジケータが接続されているカスタムインジケータAccumulation2MAを 使用します。

入退場信号がラインクロス!?

何が問題なのか理解できない。しかし、入退場信号の半分は「あからさまに」不正解なのです理由はない!

閉じるときも同じです。

このようにして、ほぼ半数のトレードが見逃されているのです。何が問題なのか、教えてください。

条件は一番シンプル! 線が明らかに動いている!しかし、ポジションは常にオープン/クローズとは限らないのです ジャーナルは "沈黙 "している。

おそらく、インジケーターの2行目を計算するのが簡単なのでしょう。そうすれば、問題はなくなるはずです

 
MetaDriver:

これはおそらく、ティックを飛ばしたときに起こりうることです。つまり、Start() の実行中に新しいティックが到着し、その中で条件が満たされるはずですが、Start() の実行中は無視されます。

次のチックでは、条件が満たされていない - それは完了です。

実際、インジケーターラインの交差は非常に違和感のある信号で、私は長い間使っていません。ある指標から別の指標を引いて、ゼロクロスを監視するのがよいでしょう。それは好みの問題です。

引き算とゼロクロスをなぞるのは、実質的に上の例と同じではないでしょうか?

//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {

一見すると、ドタバタしているように見えますが!

なぜ、「ゼロクロス」の方がうまくいくと思うのですか?

 
VINAR:

インジケーターの2行目を計算する方が簡単かもしれません。そうすれば、問題はなくなるはずです

インジケーターの2行目を計算する」というのがよくわからないのですが?説明できますか?

============================

今、Expert Advisorを再度テストしているのですが(ちなみに、価格を開くことで動作します)、現時点では完璧に動作していることに驚いています信号の飛びがほとんどなくなりました

そして昨日は同じmt4で半分のシグナルを外しました!ある種の奇跡が...。

 
Rita:

引き算してゼロクロスをなぞるのと、実質的には同じことではないでしょうか?

一見、真正面から見ているようで、真正面から見ているようで!?

なぜ、「ゼロを越える」の方が効果的だと思うのですか?

理屈はともかくとして。実際には

1) インジケータが推奨するマーケットポジションと実際のポジションの差を注文で簡単に確認することができる。つまり、出来上がったインジケータは、「プラス/マイナス」==「上がる/下がる」と解釈できる既成のカーブを表示します。上下逆さまのシステムにはとても便利です。

2) 信号を簡便に改良できる可能性がある(係数の乗算、他の基準線との交点など)。

だから、さっきも言ったように、好みの問題なんです。:)