MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1935 1...192819291930193119321933193419351936193719381939194019411942...1953 新しいコメント Artyom Trishkin 2022.03.22 23:35 #19341 Valeriy Yastremskiy #: Windowsの力を借りて。グラフィックは大きく小さいフォントを設定し、調整する必要があります。 モニターが2台ある場合はどうするのですか?違うもの... Valeriy Yastremskiy 2022.03.23 04:40 #19342 Artyom Trishkin #:モニターが2台ある場合はどうするのですか?違う... そして、画像を表示する画面の解像度を把握する必要があります。オブジェクトは、2つのモニターに到達することもできます)が、より複雑な作業となります。はい、負のTextSetFont() 値によってシステムの標準フォントにバインドすることは良い 解決策です。 IrishDance 2022.03.24 12:26 #19343 インジケーターの最適化に貢献します。このインジケータは動作が遅いので、EAを最適化するのに非常に時間がかかる。何がいけなかったのか、アドバイスをお願いします。その作業をスピードアップさせるには? //+------------------------------------------------------------------+ //| Momentum.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2022, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_maximum 1 #property indicator_minimum 0 #property indicator_width1 2 //---- input parameters extern int MomPeriod = 10; extern int WindowOfNorm = 45; // ширина окна нормирования в барах extern int MA_Length = 10; // Average Period extern int MA_Mode = 0; // Mode of Moving Average //---- buffers double NormBuffer[],MomBuffer[],AvgVolumes[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line SetIndexStyle(2,DRAW_NONE); SetIndexBuffer(2,NormBuffer); SetIndexStyle(1,DRAW_NONE); SetIndexBuffer(1,MomBuffer); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,AvgVolumes); //---- return(0); } //+------------------------------------------------------------------+ //| Momentum | //+------------------------------------------------------------------+ int start() { for(int i = 1;i <= 130; i++) { MomBuffer[i]=iMA(NULL,0,MomPeriod,0,0,0,i)*100/iMA(NULL,0,MomPeriod,0,0,0,i+MomPeriod); // нормирование NormBuffer[i]=Norm(WindowOfNorm,i); //----- AvgVolumes[i] = iMAOnArray(NormBuffer,0,MA_Length,0,MA_Mode,i); } return(0); } //+------------------------------------------------------------------+ // нормирование double Norm(int norm, int i) { // экстремумы double max=MomBuffer[ArrayMaximum(MomBuffer,norm,i)]; double min=MomBuffer[ArrayMinimum(MomBuffer,norm,i)]; // вычисление осциллятора double delta=max-min; // размах if(delta==0) return(1); else return((MomBuffer[i]-min)/delta); } ファイル: ind-MomentumSmooth_v1_EA.mq4 5 kb Alexey Viktorov 2022.03.24 14:09 #19344 IrishDance #:インジケーターの最適化に貢献します。このインジケータは動作が遅いので、EAを最適化するのに非常に時間がかかる。何がいけなかった のか、アドバイスをお願いします。どうすれば速く動作させることができるのか? これはやり方が違う。この行に注目してください //| Copyright © 2004, MetaQuotes Software Corp. | 18年の間にプログラミング言語が大きく変わったので、全く動かないはずはないのですが。なぜMQはまだint init()とint start()を完全に無効化していないのか理解できません。 Valeriy Yastremskiy 2022.03.24 16:58 #19345 何が問題なのか、テスターで2つのパラメータVLineは、エラー2022.03.24 18:24:27.615を与える TestGenerator: unmatched data error (volume limit 263 at 2022.03.18 14:30 exceeded). 最初のパラメータtime1が削除されれば、すべてうまくいく。 bool FlagOpOr=false; bool FlagClOr=false; bool Work=true; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- static bool FlagNDay=true, FlagVLRed=false,FlagVLBlue=false; static datetime Data = 0, NData=0; Data = Day(); if(NData!=Data){FlagVLRed=true; FlagVLBlue=true;NData=Data;} if(FlagVLRed==true && Hour()==0){ VLine(1,clrRed); FlagVLRed=false;} if(FlagVLBlue==true && Hour()==1){ VLine(1,clrBlue); FlagVLBlue=false; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnDeinit(const int reason)//int deinit(void)void { int i; int obj_total=ObjectsTotal(); for(i=obj_total-1;i>=0;i--) { string sn=ObjectName(i); string Head=StringSubstr(sn,0,4);// Извлекаем первые 4 сим if(Head == "VLin") { ObjectDelete(sn); } } Comment(""); return; } //+------------------------------------------------------------------+ bool VLine( int time1=0, color clr = clrRed ){ string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); string NameLine="VLine_" + "_"+var1; bool created=ObjectCreate(0,NameLine,OBJ_VLINE,0,TimeCurrent(),0); if(created)// если создался - сделаем ему тюнинг { //--- точка привязки сверху, чтобы не наезжать на бар ObjectSetInteger(0,NameLine,OBJPROP_STYLE,STYLE_SOLID); //--- последний штрих - покрасим ObjectSetInteger(0,NameLine,OBJPROP_COLOR,clr); //--- установим толщину линии ObjectSetInteger(0,NameLine,OBJPROP_WIDTH,2); } else return(false );time1=0; return(true); } DanilaMactep 2022.03.25 09:59 #19346 皆さん、こんにちは。取引中は20~40枚のチャートを開いています。すべての楽器の下か、一番上のメニュー項目「ウィンドウ」で、正しいものを探すのにかなりの時間を費やさなければならないのです。スクリプトで加速できれば、入力パラメーターにスクリプトを入れて、必要な記号を入力すれば、目で見つけてクリックしたかのように開いてくれるんです。そのようなことを実現するにはどうしたらいいのか。 Valeriy Yastremskiy 2022.03.25 10:09 #19347 DanilaMactep #:皆さん、こんにちは。取引中は20~40枚のチャートを開いています。すべての楽器の下か、一番上のメニュー項目「ウィンドウ」で、正しいものを探すのにかなりの時間を費やさなければならないのです。スクリプトで加速できれば、入力パラメーターにスクリプトを入れて、必要な記号を入力すれば、目で見つけてクリックしたかのように開いてくれるんです。どうすればいいのでしょうか。 ロジックとしては、スクリプトが、今開いているチャートやウィンドウの数と、どのインストルメントかを調べ、それらを記憶し(シンボルとチャートアイディ)、インストルメントの数に応じて、インストルメント名が書かれたボタンのあるパネルを描画することです。ボタンを押すと、必要なインストルメントを持つチャートは、そのプロパティを拡張(折りたたみも可能)、オーバーオールに変更し、スクリプトは閉じます。 DanilaMactep 2022.03.25 12:36 #19348 Valeriy Yastremskiy #:論理的には、スクリプトは、今開いているチャートやウィンドウの数と、どの計測器かを調べ、それらを記憶し(シンボルとチャートアイディ)、計測器の数に応じて、計測器名が書かれたボタンのあるパネルを描画するはずです。ボタンを押すと、目的の楽器のあるチャートは、そのプロパティを拡張(折りたたみも可能)、オーバーオールに変更し、スクリプトは閉じます。 ロジックが悪い - どのボタンを見るか - 下、メニューウィンドウ、スクリプトで描かれたボタンのどれを見るかの違いか?入力パラメータに目的の記号を入力すると、スクリプトがこのウィンドウを開いてくれるように、何とかしなければなりません - そうすれば、より簡単で速くなります。どなたか、そんな奇跡をお持ちの方、教えてください。 законопослушный гражданин 2022.03.25 12:49 #19349 こんにちは。 グリッドオペレーターと呼ばれるEAを探しています。 成行注文をグリッドで開く。 グリッドが一定(%)の利益に達したときに注文をクローズします。 そのようなExpert Advisorを見たことがあるのですが、今は見つけることができません。 そのようなExpert Advisorを見たことがあるのですが、今は見つけられません。 Valeriy Yastremskiy 2022.03.25 14:33 #19350 DanilaMactep #: 悪い論理 - どのボタンを見るか - 下部、メニューウィンドウ、スクリプトによって描かれたボタンのどれを見るかの違いは何でしょうか?何とか入力パラメータに所望のシンボルを入力し、スクリプトはあなたのためにこのウィンドウを開いている、ように行われなければならない - ので、より簡単かつ迅速であろう。どなたか、そんな奇跡をお持ちの方、教えてください。 新しいウィンドウを開く(EAなしで、デフォルトのテンプレートで開く)、または既に開いているウィンドウを上げる、または拡大することができます。https://www.mql5.com/ru/forum/160683/page1930添付のコードを見てください、チャートの列挙と条件によるチャートへの描画があります。もしかしたら、それが役に立つかもしれません。 1...192819291930193119321933193419351936193719381939194019411942...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Windowsの力を借りて。グラフィックは大きく小さいフォントを設定し、調整する必要があります。
モニターが2台ある場合はどうするのですか?違うもの...
モニターが2台ある場合はどうするのですか?違う...
インジケーターの最適化に貢献します。このインジケータは動作が遅いので、EAを最適化するのに非常に時間がかかる。何がいけなかったのか、アドバイスをお願いします。その作業をスピードアップさせるには?
インジケーターの最適化に貢献します。このインジケータは動作が遅いので、EAを最適化するのに非常に時間がかかる。何がいけなかった のか、アドバイスをお願いします。どうすれば速く動作させることができるのか?
これはやり方が違う。この行に注目してください
//| Copyright © 2004, MetaQuotes Software Corp. |
18年の間にプログラミング言語が大きく変わったので、全く動かないはずはないのですが。なぜMQはまだint init()とint start()を完全に無効化していないのか理解できません。
何が問題なのか、テスターで2つのパラメータVLineは、エラー2022.03.24 18:24:27.615を与える TestGenerator: unmatched data error (volume limit 263 at 2022.03.18 14:30 exceeded).
最初のパラメータtime1が削除されれば、すべてうまくいく。
皆さん、こんにちは。取引中は20~40枚のチャートを開いています。すべての楽器の下か、一番上のメニュー項目「ウィンドウ」で、正しいものを探すのにかなりの時間を費やさなければならないのです。スクリプトで加速できれば、入力パラメーターにスクリプトを入れて、必要な記号を入力すれば、目で見つけてクリックしたかのように開いてくれるんです。そのようなことを実現するにはどうしたらいいのか。
皆さん、こんにちは。取引中は20~40枚のチャートを開いています。すべての楽器の下か、一番上のメニュー項目「ウィンドウ」で、正しいものを探すのにかなりの時間を費やさなければならないのです。スクリプトで加速できれば、入力パラメーターにスクリプトを入れて、必要な記号を入力すれば、目で見つけてクリックしたかのように開いてくれるんです。どうすればいいのでしょうか。
ロジックとしては、スクリプトが、今開いているチャートやウィンドウの数と、どのインストルメントかを調べ、それらを記憶し(シンボルとチャートアイディ)、インストルメントの数に応じて、インストルメント名が書かれたボタンのあるパネルを描画することです。ボタンを押すと、必要なインストルメントを持つチャートは、そのプロパティを拡張(折りたたみも可能)、オーバーオールに変更し、スクリプトは閉じます。
論理的には、スクリプトは、今開いているチャートやウィンドウの数と、どの計測器かを調べ、それらを記憶し(シンボルとチャートアイディ)、計測器の数に応じて、計測器名が書かれたボタンのあるパネルを描画するはずです。ボタンを押すと、目的の楽器のあるチャートは、そのプロパティを拡張(折りたたみも可能)、オーバーオールに変更し、スクリプトは閉じます。
こんにちは。
グリッドオペレーターと呼ばれるEAを探しています。
成行注文をグリッドで開く。
グリッドが一定(%)の利益に達したときに注文をクローズします。
そのようなExpert Advisorを見たことがあるのですが、今は見つけることができません。
そのようなExpert Advisorを見たことがあるのですが、今は見つけられません。
悪い論理 - どのボタンを見るか - 下部、メニューウィンドウ、スクリプトによって描かれたボタンのどれを見るかの違いは何でしょうか?何とか入力パラメータに所望のシンボルを入力し、スクリプトはあなたのためにこのウィンドウを開いている、ように行われなければならない - ので、より簡単かつ迅速であろう。どなたか、そんな奇跡をお持ちの方、教えてください。