MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 977 1...970971972973974975976977978979980981982983984...1953 新しいコメント Kamilzhan 2019.09.28 16:13 #9761 Alexey Viktorov: 良いアドバイスのために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。 Alexey Viktorov 2019.09.28 16:35 #9762 Kamilzhan: 完全な答えを出すには、4回ではなく、1回で十分です。 MT4のすべてのカラー・インジケータは、現在の値が前のバーの値より大きい場合、バッファの1つが満たされるように構成されています。現在の値が前のバーの値より低い場合、別のバッファが満たされます。また、ライン、ヒストグラム、アスタリスク/ドットなど、表示の種類は問わない...。 Andrey777 2019.09.28 17:37 #9763 完全に動作するEAがあり、チャートの2つのスクリーンショットをテレグラムに送信します。最初のスクリーンショットはターミナルで開いたウィンドウから、2番目は同じツールからですが異なるタイムフレームで送信します。 新しいウィンドウを開き、テンプレートを適用 してスクリーンショットを撮り、ウィンドウを削除します。しかし、2枚目のスクリーンショットを使ったこの方式は、常に安定しているわけではありません。 新しいウィンドウを開かないで、ずっと同じように使いたいのですが、目的のツールに置き換えて、コードで微調整するのを手伝ってください。 //+------------------------------------------------------------------+ //| 777.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #include <Telegram.mqh> string Token="7417:AAH54X9HyFIbecqq1U1-R18tU"; int ChannelID=33722; CCustomBot bot; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ struct TSignalInfo { string symbol; ENUM_TIMEFRAMES timeframe; datetime time_last; //--- static datetime GetMinute() { MqlDateTime dt; TimeCurrent(dt); dt.sec=0; return(StructToTime(dt)); } }; TSignalInfo signal[]; //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ bool SignalIsAllowed(const string _symbol, const ENUM_TIMEFRAMES _timeframe) { //--- find int total=ArraySize(signal); for(int i=0;i<total;i++) { if(signal[i].symbol==_symbol && signal[i].timeframe==_timeframe) { //Print("found"); if(signal[i].time_last<TSignalInfo::GetMinute()) { signal[i].time_last=TSignalInfo::GetMinute(); return(true); } return(false); } } //--- add ArrayResize(signal,total+1); signal[total].symbol=_symbol; signal[total].timeframe = _timeframe; signal[total].time_last = TSignalInfo::GetMinute(); //Print("add"); return(true); } //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- bot.Token(Token); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- if(id==CHARTEVENT_CUSTOM+234) { if(!SignalIsAllowed(ChartSymbol(lparam),ChartPeriod(lparam))) return; //Print("Custom: ",lparam," ",dparam," ",sparam); ChartScreenShot(lparam,"chart.gif"); //--- первый скриншот string _photo_id; int err=bot.SendPhoto(_photo_id,ChannelID,"chart.gif",sparam); ChartSetSymbolPeriod(lparam,ChartSymbol(lparam),ChartPeriod(lparam)); if(ChartPeriod(lparam)!=PERIOD_H4) { string _symbol=ChartSymbol(lparam); ChartScreenShot(_symbol,PERIOD_H4,"chart.gif","BollingerBands"); string _photo_id2; int err2=bot.SendPhoto(_photo_id2,ChannelID,"chart.gif",sparam); } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool ChartScreenShot(long chart_id,const string file_name) { //--- создать скриншот const int chart_width=1280; const int chart_height=623; FileDelete(file_name); //--- if(ChartScreenShot(chart_id,file_name,chart_width,chart_height,ALIGN_RIGHT)) { //--- ChartRedraw(chart_id); Sleep(500); //--- waitng 30 sec for save screenshot int wait=30; while(!FileIsExist(file_name) && --wait>0) { printf("Waiting %d sec ...",wait); Sleep(1000); ChartRedraw(chart_id); } //--- check file if(!FileIsExist(file_name)) printf("Failed to create a screenshot '%s'.",file_name); } else { Print("ChartScreenShot error ",_LastError); return(false); } return(true); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool ChartScreenShot(const string _symbol, const ENUM_TIMEFRAMES _tf, const string file_name, const string _template) { //--- long chart_id=ChartOpen(_symbol,_tf); ChartRedraw(chart_id); Sleep(155); //--- if(StringLen(_template)>0) if(!ChartApplyTemplate(chart_id,_template)) Print("Apply Template error: ",_LastError); //--- создать скриншот const int chart_width=1280; const int chart_height=623; FileDelete(file_name); //--- if(ChartScreenShot(chart_id,file_name,chart_width,chart_height,ALIGN_RIGHT)) { //--- ChartRedraw(chart_id); Sleep(500); //--- waitng 30 sec for save screenshot int wait=30; while(!FileIsExist(file_name) && --wait>0) { printf("Waiting %d sec ...",wait); Sleep(1000); ChartRedraw(chart_id); } //--- check file if(!FileIsExist(file_name)) printf("Failed to create a screenshot '%s'.",file_name); } else { Print("ChartScreenShot error ",_LastError); ChartClose(chart_id); return(false); } ChartClose(chart_id); return(true); } //+------------------------------------------------------------------+ novichok2018 2019.09.30 08:48 #9764 Alexey Viktorov: mql4では、現在の値が前の値より高ければ、緑色でバッファが異なり、その逆であれば、...。逆もまた然り))) ありがとうございます、すべて納得です。 voron_026 2019.09.30 19:21 #9765 皆さん、ごきげんよう。私は50種類の商品を取引しています。私はレベルトレードをしています。50枚のチャートを開いてターミナルを読み込まないように、プロファイルを使った作業を設定しています。私がすべてのシンボルに手で描いたレベルを使用して、「ユーロドルを見てください、何か面白いものが形成されています」というようなシグナルを画面に表示するアシスタントを書きたいのです。 私は、すべてのシンボルのすべてのレベルがコピーされ、ロボットが多通貨になるように、DLLを書くべきであると思います。 このタスクをどのように実装するか、誰か考えている人はいますか? dllのプロファイルからデータを引き出すには? PS.ツールフォルダを見ると、拡張子が "chr "のファイルがあります。メモ帳を開くと、必要な情報がすべて表示されました。こんな使い方はどうでしょう? valeriikopp 2019.09.30 19:57 #9766 こんにちは、私は初心者でプログラミングが得意ではありません。MT5用のパラボリック SARインジケータを ドットではなく線で表示させたいのですが、どうしたらよいでしょうか?よろしくお願いします。 Iurii Tokman 2019.10.01 04:30 #9767 valeriikopp: こんにちは、私は初心者でプログラミングが得意ではありません。MT5用のパラボリックSARインジケータをドットではなく線で表示させたいのですが、どうしたらよいでしょうか?よろしくお願いします。 + ファイル: ParabolicSAR_L.mq5 8 kb pvba 2019.10.02 11:09 #9768 こんにちは、私は高値が増加する一連の4つのバーの後にチャート全体に垂直線を 描画するスクリプトを作成しようとしています。スクリプトは最初に一本だけ描いて終わりです。エラーは何ですか?訂正のご協力をお願いします。 void OnStart() { double bbup0, bbup1, bbup2, bbup3; int a=0; for(;a<Bars;a++) { bbup0=High[a]; bbup1=High[a+1]; bbup2=High[a+2]; bbup3=High[a+3]; if((bbup0<bbup1)&&(bbup1<bbup2)&&(bbup2<bbup3)) ObjectCreate(0,"Line",OBJ_VLINE,0,Time[a],0); } } Iurii Tokman 2019.10.02 11:31 #9769 pvba: こんにちは、私は高値が増加する一連の4つのバーの後にチャート全体に垂直線を 描画するスクリプトを作成しようとしています。スクリプトは最初に一本だけ描いて終わりです。エラーは何ですか?訂正のご協力をお願いします。 名前は各行ごとにオリジナルである必要があります を1つの名前にしているんですね。 を選択すると、その作成時刻を名前に追加することができます。 pvba 2019.10.02 11:55 #9770 Iurii Tokman: 名前は各行ごとにオリジナルである必要があります ひとくくりにして 名前に作成時刻を加えることができます。 ありがとうございました。 1...970971972973974975976977978979980981982983984...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
良いアドバイスのために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。
完全な答えを出すには、4回ではなく、1回で十分です。
MT4のすべてのカラー・インジケータは、現在の値が前のバーの値より大きい場合、バッファの1つが満たされるように構成されています。現在の値が前のバーの値より低い場合、別のバッファが満たされます。また、ライン、ヒストグラム、アスタリスク/ドットなど、表示の種類は問わない...。
完全に動作するEAがあり、チャートの2つのスクリーンショットをテレグラムに送信します。最初のスクリーンショットはターミナルで開いたウィンドウから、2番目は同じツールからですが異なるタイムフレームで送信します。
新しいウィンドウを開き、テンプレートを適用 してスクリーンショットを撮り、ウィンドウを削除します。しかし、2枚目のスクリーンショットを使ったこの方式は、常に安定しているわけではありません。
新しいウィンドウを開かないで、ずっと同じように使いたいのですが、目的のツールに置き換えて、コードで微調整するのを手伝ってください。
mql4では、現在の値が前の値より高ければ、緑色でバッファが異なり、その逆であれば、...。逆もまた然り)))
ありがとうございます、すべて納得です。
皆さん、ごきげんよう。私は50種類の商品を取引しています。私はレベルトレードをしています。50枚のチャートを開いてターミナルを読み込まないように、プロファイルを使った作業を設定しています。私がすべてのシンボルに手で描いたレベルを使用して、「ユーロドルを見てください、何か面白いものが形成されています」というようなシグナルを画面に表示するアシスタントを書きたいのです。 私は、すべてのシンボルのすべてのレベルがコピーされ、ロボットが多通貨になるように、DLLを書くべきであると思います。
このタスクをどのように実装するか、誰か考えている人はいますか?
dllのプロファイルからデータを引き出すには?
PS.ツールフォルダを見ると、拡張子が "chr "のファイルがあります。メモ帳を開くと、必要な情報がすべて表示されました。こんな使い方はどうでしょう?
こんにちは、私は初心者でプログラミングが得意ではありません。MT5用のパラボリックSARインジケータをドットではなく線で表示させたいのですが、どうしたらよいでしょうか?よろしくお願いします。
+
こんにちは、私は高値が増加する一連の4つのバーの後にチャート全体に垂直線を 描画するスクリプトを作成しようとしています。スクリプトは最初に一本だけ描いて終わりです。エラーは何ですか?訂正のご協力をお願いします。
こんにちは、私は高値が増加する一連の4つのバーの後にチャート全体に垂直線を 描画するスクリプトを作成しようとしています。スクリプトは最初に一本だけ描いて終わりです。エラーは何ですか?訂正のご協力をお願いします。
名前は各行ごとにオリジナルである必要があります
を1つの名前にしているんですね。
を選択すると、その作成時刻を名前に追加することができます。
名前は各行ごとにオリジナルである必要があります
ひとくくりにして
名前に作成時刻を加えることができます。
ありがとうございました。