MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 501 1...494495496497498499500501502503504505506507508...1953 新しいコメント Vitaly Muzichenko 2018.03.24 20:08 #5001 dimkh87:午後MT4とMT5で、1つの商品のチャートを異なる時間枠で重ね合わせ、その時間枠に対応したインジケータを表示することが可能かどうか、教えてください。例えば、EUR/USDペアの 3つのチャートを1つのウィンドウに表示し、日足、4時間足、1時間足のTFを表示し、さらにこれらのTFのスライドインジケーターを重ね合わせたいと思います。可能なのでしょうか?よろしくお願いします。タイムラインをどうするか?あるいは、より小さなタイムスケールから数本の幅でバーを描画しますか? Konstantin Nikitin 2018.03.24 20:35 #5002 Вадим Мотеюнас:皆さん、アドバイスをお願いします。私は、最後に開いたポジションのバー 番号または- 1を返すキムから関数を取りました。 この関数を呼び出して、条件を書くと Printを見ると、この関数は-1を返しています。最初は注文がないと思いましたが、しばらくすると注文が再び現れ、同じバーでストップの後に取引が開始されました。 static datetime time_open = 0; if(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]) { Comment("цена входа = ",DoubleToStr(Low[2],Digits)); if( Open[0] != time_open ) if(NumberOfBarOpenLastPos("",0,-1,-1)!=0)//вызвал здесь ticket=OrderSend(Symbol(),OP_SELLLIMIT,0.1,Low[2],2,0,0,magic,0); if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) { time_open = Open[0]; TP=NormalizeDouble(OrderOpenPrice()-tp*Point,Digits); SL=NormalizeDouble(OrderOpenPrice()+sl*Point,Digits); modify=OrderModify(ticket,OrderOpenPrice(),SL,TP,0); } } Вадим Мотеюнас 2018.03.24 20:52 #5003 Konstantin Nikitin: if( iOpen[0] != time_open )'iOpen' - 未定義識別子 を示すエラー Vitaly Muzichenko 2018.03.24 21:03 #5004 Вадим Мотеюнас: エラーはif( iOpen[0] != time_open )'iOpen' - 未宣言の識別子 を指して書き込まれます。キムは全機能が使える!正しく適用できていなかったんですね。 Вадим Мотеюнас 2018.03.24 21:06 #5005 Vitaly Muzichenko:キムは全機能が使える!正しく適用できていなかったんですね。誰も議論していない、私がどのように誤用したかを理解したいだけだ。 Vitaly Muzichenko 2018.03.24 21:07 #5006 Вадим Мотеюнас:誰も議論していない、私はどのように間違って適用しているのか理解したい。すべてを印刷する - 間違いや欠点を明らかにするために行うべき正しいことです。 Print( NumberOfBarOpenLastPos("",0,-1,-1) ); Вадим Мотеюнас 2018.03.24 21:20 #5007 Vitaly Muzichenko:すべてを印刷する - これは、エラーや欠陥を特定するための最良のソリューションです。 私はそれが-1、すなわち、注文が開かれた最後のバーが関数によって検出されないことを言った、私は正しいパラメータを渡していないことを心配しています。 Вадим Мотеюнас 2018.03.24 21:32 #5008 int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot; int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime();//что означает это строка?что текущее время раньше цены открытия ордера, это как? } } } } } } Vitaly Muzichenko 2018.03.24 21:54 #5009 Вадим Мотеюнас: ラインというのは、すべてのポジションを調べて、一番新しいものを選んで/覚えて、それを使って仕事をするということです。これは、ポジションが順番にではなく、ばらばらになっている場合です。 Vitaly Muzichenko 2018.03.24 21:59 #5010 この関数は、時間的に新しいもの、つまり最後のものを選びます。 int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot=0; // Инициализируем нулём int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime(); // Ищем последнюю позицию } } } } } } return(iBarShift(sym, tf, oot, True)); } 次に、選択したものがあるので、それを関数iBarShift(sym, tf,oot ,true) に代入します。 この関数は、時間ごとのバー 番号を返します。以上です。 残念ながら確認はできませんが、私が使用したところ、I.Kim氏がここで公開したすべての機能と同様に、問題なく動作しました。 1...494495496497498499500501502503504505506507508...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
午後MT4とMT5で、1つの商品のチャートを異なる時間枠で重ね合わせ、その時間枠に対応したインジケータを表示することが可能かどうか、教えてください。例えば、EUR/USDペアの 3つのチャートを1つのウィンドウに表示し、日足、4時間足、1時間足のTFを表示し、さらにこれらのTFのスライドインジケーターを重ね合わせたいと思います。可能なのでしょうか?よろしくお願いします。
タイムラインをどうするか?あるいは、より小さなタイムスケールから数本の幅でバーを描画しますか?
皆さん、アドバイスをお願いします。私は、最後に開いたポジションのバー 番号または- 1を返すキムから関数を取りました。
この関数を呼び出して、条件を書くと
Printを見ると、この関数は-1を返しています。最初は注文がないと思いましたが、しばらくすると注文が再び現れ、同じバーでストップの後に取引が開始されました。
エラーはif( iOpen[0] != time_open )'iOpen' - 未宣言の識別子 を指して書き込まれます。
キムは全機能が使える!正しく適用できていなかったんですね。
キムは全機能が使える!正しく適用できていなかったんですね。
誰も議論していない、私がどのように誤用したかを理解したいだけだ。
誰も議論していない、私はどのように間違って適用しているのか理解したい。
すべてを印刷する - 間違いや欠点を明らかにするために行うべき正しいことです。
すべてを印刷する - これは、エラーや欠陥を特定するための最良のソリューションです。
私はそれが-1、すなわち、注文が開かれた最後のバーが関数によって検出されないことを言った、私は正しいパラメータを渡していないことを心配しています。
ラインというのは、すべてのポジションを調べて、一番新しいものを選んで/覚えて、それを使って仕事をするということです。これは、ポジションが順番にではなく、ばらばらになっている場合です。
この関数は、時間的に新しいもの、つまり最後のものを選びます。
次に、選択したものがあるので、それを関数iBarShift(sym, tf,oot ,true) に代入します。
この関数は、時間ごとのバー 番号を返します。以上です。
残念ながら確認はできませんが、私が使用したところ、I.Kim氏がここで公開したすべての機能と同様に、問題なく動作しました。