MT5への願い - ページ 58 1...515253545556575859606162636465...117 新しいコメント Vladimir Gomonov 2011.02.26 00:39 #571 Urain:もはや便宜上以外、関係ない。int scale =(int)ChartGetInteger(chart_id,CHART_SCALE); int pointer_per_bar=pow(2,scale);// количество пикселей на бар // остальное можно высчитать из первого видимого бара, и ширины графика в пикселях.О!ニコライさん、ありがとうございます! 最後までやり遂げられますか?つまり、4つの具体的な機能の実装に。int ChartGetX(datetime T); int ChartGetY(double P); datetime ChartGetTime(int X); double ChartGetPrice(int Y); もうパズルが完成したみたいで、長い間いじくり回すことになりそうですね。していただけるとありがたいです。 Andrey Vasiliev 2011.02.26 13:06 #572 Renat:1つのシンボルで複数のExpert Advisorを取引するのはナンセンスです。 これは、1つのチャートに複数のインジケータを配置する可能性と同じで、妄想ではありません。MT4では、Expert Advisorから複雑な構造をワンクリックで作成し、そこからポートフォリオを作成する機能が存在すること自体、壮大なことです。5でこの機能を持つには、取引口座をサブ口座に仮想的に分割することをサポートする取引クラスを作るまた、既存のシンボルをベースに独自のバーチャルシンボルを追加する機会を端末に作成することもできます。 Igor Makanu 2011.02.26 14:17 #573 MT5の新機能に乗り遅れているのかもしれませんが、バーや価格ではなく、XとYの座標でチャートを表示できるようにしたいのですが、もしそのような可能性が既にあるのならアドバイスをお願いします。そうでなければ、OBJ_CHART グラフィックオブジェクトを使って、特定のシンボルとツールXY_Symbolで簡単に実装できると思います。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5 Mykola Demko 2011.02.26 17:54 #574 MetaDriver:О!ニコライさん、ありがとうございます! 最後までやり遂げられますか?具体的に4つの機能の実装にということです。すでにパズルが完成しているようで、長い間、いじくり回すことになりそうです。していただけるとありがたいです。こんなところにも。別の角度が 必要な場合は、ウィンドウのピクセル寸法から再計算することができます。//+------------------------------------------------------------------+ //| Преобразование координат. Верхний левый угол привязки | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| time to X | //+------------------------------------------------------------------+ int WindowGetX(long chart_id,datetime T) { datetime temp[]; int bar=(int)ChartGetInteger(chart_id,CHART_FIRST_VISIBLE_BAR); CopyTime(ChartSymbol(chart_id),ChartPeriod(chart_id),bar,1,temp); return((int)NormalizeDouble( ((T-temp[0])/(double)PeriodSeconds(ChartPeriod(chart_id)))* pow(2,ChartGetInteger(chart_id,CHART_SCALE)),0)); }; //+------------------------------------------------------------------+ //| price to Y | //+------------------------------------------------------------------+ int WindowGetY(long chart_id,double P) { return((int)((ChartGetDouble(chart_id,CHART_PRICE_MAX)-P)* (ChartGetInteger(chart_id,CHART_HEIGHT_IN_PIXELS)/ (ChartGetDouble(chart_id,CHART_PRICE_MAX)-ChartGetDouble(chart_id,CHART_PRICE_MIN))))); }; //+------------------------------------------------------------------+ //| X to time | //+------------------------------------------------------------------+ datetime WindowGetTime(long chart_id,int X) { datetime temp[]; int bar=(int)ChartGetInteger(chart_id,CHART_FIRST_VISIBLE_BAR); CopyTime(ChartSymbol(chart_id),ChartPeriod(chart_id),bar,1,temp); return((datetime)(temp[0]+ (X/(double)pow(2,ChartGetInteger(chart_id,CHART_SCALE)))* PeriodSeconds(ChartPeriod(chart_id)))); }; //+------------------------------------------------------------------+ //| Y to price | //+------------------------------------------------------------------+ double WindowGetPrice(long chart_id,int Y) { return(ChartGetDouble(chart_id,CHART_PRICE_MAX)-Y/ (ChartGetInteger(chart_id,CHART_HEIGHT_IN_PIXELS)/ ChartGetDouble(chart_id,CHART_PRICE_MAX)-ChartGetDouble(chart_id,CHART_PRICE_MIN))); };コール例void OnStart() { datetime T=StringToTime("2011.02.25 18:12"); double P=1.37831; Object(ChartID(),T,P); } //+------------------------------------------------------------------+ void Object(long chart_id,datetime T,double P) { int x=WindowGetX(chart_id,T); int y=WindowGetY(chart_id,P); string name="Button"; if(ObjectCreate(chart_id,name,OBJ_BUTTON,0,0,0,0,0)) {//--- ObjectSetInteger(chart_id,name,OBJPROP_BACK,1); ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(chart_id,name,OBJPROP_STATE,false); //--- привяжем кнопку к правому верхнему углу графика ObjectSetInteger(chart_id,name,OBJPROP_CORNER,CORNER_LEFT_UPPER); //--- теперь настроим свойства объекта ObjectSetInteger(chart_id,name,OBJPROP_XSIZE,40); ObjectSetInteger(chart_id,name,OBJPROP_YSIZE,40); ObjectSetInteger(chart_id,name,OBJPROP_BGCOLOR,Silver); ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y); } } Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки - Документация по MQL5 Mykola Demko 2011.02.26 18:02 #575 やはり、これらの機能は標準装備 されていた方が良いのですが。そうすれば、このスレッドを読んでいる人たちだけでなく、すべての言語使用者が知ることができるはずです。 Mykola Demko 2011.02.26 19:04 #576 コード投稿を修正し、別関数(クラスなし)として記述し、バインド角度を 変更しました。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки - Документация по MQL5 Vladimir Gomonov 2011.02.27 17:09 #577 Urain: やはり、これらの機能は標準装備 されていた方が良いのですが。そうすれば、このスレッドを読んでいる人たちだけでなく、すべての言語使用者が知ることができるはずです。 ありがとうございました。 Mykola Demko 2011.02.27 17:14 #578 MetaDriver: ありがとうございました。 データがなくてゼロで除算 されることもあるので、チェックを入れてください。 Mykola Demko 2011.02.28 17:08 #579 ある時刻のバーナンバーを検索する機能を標準実装してほしい。今はCArrayLongで 実装しています。しかし、この場合、チャート自体にすでに存在する多くのデータをロードしなければなりません。実際には記憶を複製しているのです。標準的な形であれば、もっと早く使えると思うのですが。 Vladimir Gomonov 2011.02.28 18:14 #580 Urain: データがなくてゼロで除算されることもあるので、チェックを入れてください。 OKです。 1...515253545556575859606162636465...117 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
もはや便宜上以外、関係ない。
О!ニコライさん、ありがとうございます! 最後までやり遂げられますか?つまり、4つの具体的な機能の実装に。
もうパズルが完成したみたいで、長い間いじくり回すことになりそうですね。していただけるとありがたいです。
Renat:
1つのシンボルで複数のExpert Advisorを取引するのはナンセンスです。
これは、1つのチャートに複数のインジケータを配置する可能性と同じで、妄想ではありません。
MT4では、Expert Advisorから複雑な構造をワンクリックで作成し、そこからポートフォリオを作成する機能が存在すること自体、壮大なことです。
5でこの機能を持つには、取引口座をサブ口座に仮想的に分割することをサポートする取引クラスを作る
また、既存のシンボルをベースに独自のバーチャルシンボルを追加する機会を端末に作成することもできます。
MT5の新機能に乗り遅れているのかもしれませんが、バーや価格ではなく、XとYの座標でチャートを表示できるようにしたいのですが、もしそのような可能性が既にあるのならアドバイスをお願いします。そうでなければ、OBJ_CHART グラフィックオブジェクトを使って、特定のシンボルとツールXY_Symbolで簡単に実装できると思います。
О!ニコライさん、ありがとうございます! 最後までやり遂げられますか?具体的に4つの機能の実装にということです。
すでにパズルが完成しているようで、長い間、いじくり回すことになりそうです。していただけるとありがたいです。
こんなところにも。別の角度が 必要な場合は、ウィンドウのピクセル寸法から再計算することができます。
コール例
やはり、これらの機能は標準装備 されていた方が良いのですが。そうすれば、このスレッドを読んでいる人たちだけでなく、すべての言語使用者が知ることができるはずです。
ありがとうございました。
ある時刻のバーナンバーを検索する機能を標準実装してほしい。
今はCArrayLongで 実装しています。しかし、この場合、チャート自体にすでに存在する多くのデータをロードしなければなりません。実際には記憶を複製しているのです。標準的な形であれば、もっと早く使えると思うのですが。
データがなくてゼロで除算されることもあるので、チェックを入れてください。