MetaTraderでTelegramを操作する。テレグラムチャンネルとボット
私のオートロットの秘密 ダイナミック・ロットまたはオートロット
説明
アラート:検索エンジンで最も頻繁に検索されるクエリやフォーラムで人気のトピックには、以下のフレーズがよく含まれます。特に、最新のアラートに注目してください。アラート – 矢印
そのようなトピックに関するアラートは、最新のトレンドを把握するのに役立ちます。
- “アラートインジケーター“
- “インジケーターにサウンド信号を追加するにはどうすればよいですか?“
- “インジケーターにサウンド信号を挿入するのを手伝ってください“
- “アラートと矢印を挿入する方法“
- “インジケーターからの信号が来たときにメールや電話にメッセージを送信するにはどうすればよいですか?“
この記事では、アラート、メール、プッシュ、矢印通知を任意のインジケーターに追加する簡単な方法について、Expforexで利用可能な追加コードを使用して詳細に説明します。
序文
インジケーターにアラートを正しくインストールするには、インジケーターのオープンソースコードが必要です。
逆コンパイルされたコードは望ましくありません。初心者にとって、逆コンパイルされたコードは最小限の情報しか提供せず、理解が難しいです。
編集後にコンパイルの問題が発生することもあります。
xCustomEA
複雑なカスタムプログラミングに深入りせずに取引戦略を自動化する簡単な方法を探している場合は、xCustomEAを検討してください。
Expforexからのこのエキスパートアドバイザーは、矢印信号を生成するインジケーターとシームレスに連携するように設計されています。xCustomEAを使用すると、買いまたは売りの矢印を表示する任意のインジケーターを簡単に自動化でき、カスタムコードの開発の手間をかけずに強力な自動化戦略を作成できます。
xCustomEAは、インジケーター信号に基づく戦略の自動化を非常に簡単にします。これにより、トレーダーはカスタムプログラミングに時間とリソースを費やす代わりに、取引の最適化に集中できます。このエキスパートアドバイザーは、プログラマーを雇う代わりとして優れた選択肢を提供し、インジケーター信号を取引に変換するための簡単なソリューションを提供します。
詳細については、xCustomEAページを訪問するか、Expforexの他のエキスパートアドバイザーを探索してください。
アラートを挿入するための作業開始
まず、どのインジケーターバッファが特定の信号を提供するか、アラートを作成する目的、およびインジケーター上で信号を判定する条件を決定する必要があります。
重要:変数コードの先頭で定義された外部バッファのみがインジケーターに表示されます:
#property indicator_buffers 1
ただし、インジケーターには、init()関数で設定され、変数として宣言された隠しバッファも含まれる場合があります:
IndicatorBuffers(7): 最初のバッファだけが必要です。
例えば、外部バッファが1つある場合、変数を確認します:
SetIndexBuffer(0, SarBuffer);
- 0 は最初のバッファ
- 1 は2番目のバッファ
これらのバッファまたはその名前は、チャート上でインジケーターの特定の行にカーソルを合わせることで識別できます。
Value1 – これは最初のバッファまたはコードのインデックスシステムでの0です。
SetIndexBuffer(0, SarBuffer); // 必要なバッファの名前
これがSarBufferの場合、これを使用します。
さらに、信号がどのようにトリガーされるかを決定する技術的な問題があります;
例えば、これは0ラインの上(下)から下(上)へ交差する場合、次のようになります:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
現在の価格またはバーをインジケーターが交差する、インジケーターによるバーのブレイクアウトなど:
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
これはユニークなレベルの交差の場合、ストキャスティクスなどのインジケーター:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
インジケーターにすでに矢印がある場合、次のタイプの信号も可能です:
DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE
いずれの場合も、信号を正しく記録するためにロジックと創造性を適用する必要があります。困難に直面した場合は、このスレッドに書き込み、インジケーターを添付し、チャート上の線を表示し、できないことを詳細に説明してください。どこで何をすべきかを説明せずに「インジケーターにアラートを挿入する必要があります」といったメッセージを送信するだけでは役に立ちません。
「www.expforex.comからのアラートと矢印」コード
インジケーターにアラートを追加する次のステップは、いくつかのポイントで構成されています:
ステップ 1
OnCalculate()(start)関数の前に、エキスパートアドバイザーの先頭に以下のコードを挿入します:
//+==+//+ www.expforex.com 編集 アラートアロー +//+==+ extern string Alerts="www.expforex.comからのアラートと矢印"; extern bool AlerT=true; // 画面にアラートを表示 extern bool Mail=true; // メッセージを送信 extern bool Push=true; // 電話にPUSHを送信 extern bool Arrow=true; // 信号に矢印を表示 extern int shift=1; // どのバーで信号をカウントするか 0 - 現在のバー、1 - 閉じたバー int timeee; // 内部変数 string nameInd; void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3) { if(nm=="") nm=DoubleToStr(Time[0], 0); if(t1 <= 0) t1=Time[0]; if(p1 <= 0) p1=Bid; nameInd=WindowExpertName(); int wind=WindowFind(nameInd); wind=0; if(ObjectFind(nm) < 0) ObjectCreate(nm, OBJ_ARROW, wind, 0, 0); ObjectSet(nm, OBJPROP_TIME1, t1); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_ARROWCODE, cd); ObjectSet(nm, OBJPROP_COLOR, cl); ObjectSet(nm, OBJPROP_WIDTH, sz); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0) { nameInd=WindowExpertName(); int wind=WindowFind(nameInd); if(wind==-1) wind=0; ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0); ObjectSetText("Originalalert", "Modification AlertArrow www.expforex.com", 10, "Arial Bold", Red); ObjectSet("Originalalert", OBJPROP_CORNER, 2); ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200); ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10); if(!history) { if(AlerT) Alert(text); if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]); if(!IsTesting()) if(Mail) SendMail(text, text); if(!IsTesting()) if(Push) SendNotification(text); } if(history) { if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]); } }//+==+//+ www.expforex.com 編集 アラートアロー +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { for(int i=ObjectsTotal(); i>=0; i--) { if(StringFind(ObjectName(i), nameInd)!=-1) ObjectDelete(ObjectName(i)); } } //+------------------------------------------------------------------+
ステップ 2
OnCalculate() 関数を閉じる前に、以下のコードを挿入します:
return(rates_total); }
以下のコードを貼り付けます:
//+==+//+ www.expforex.com 編集 アラートアロー +//+==+ nameInd=WindowExpertName(); if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP", 1); timeee=Time[0]; } if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN", 2); timeee=Time[0]; }//+==+//+ www.expforex.com 編集 アラートアロー +//+==+
ステップ 3
このコードは私たちの信号として機能します。
もちろん、一部のコードを自分のものに置き換える必要があります。
以下のコードはアラートの信号として機能します:
1. 0ラインの上(下)から下(上)へ交差する場合、次のようになります:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
2. 現在の価格またはバーをインジケーターが交差する、インジケーターによるバーのブレイクアウトなど:
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
3. これはユニークなレベルの交差の場合、ストキャスティクスなどのインジケーター:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
使用後
インジケーターにサウンド信号を追加するには、以下の手順に従ってください:
- 1. インジケーターの設定を開きます。
- 2. “アラート” または “矢印” セクションを探します。
- 3. サウンドアラートを追加するオプションを選択します。
- 4. アラートとして使用したいサウンドファイルを選択します。
- 5. 変更を保存します。
インジケーターにサウンド信号を挿入することで、特定の条件が満たされたときに音声通知を受け取ることができ、より良い取引判断を下すのに役立ちます。
履歴に矢印が必要な場合は、次のことを行う必要があります:
上記のコードの後に、以下を追加します:
//+==+//+ www.expforex.com 編集 アラートアロー +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(counted_bars > 0) counted_bars--; int limit2 = Bars - counted_bars; for(int i2 = 0; i2 < limit2; i2++) { nameInd = WindowExpertName(); if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP" + i2, 1, true, i2); } if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN" + i2, 2, true, i2); } } //+==+//+ www.expforex.com 編集 アラートアロー +//+==+
例
これらの例は、当社のフォーラムの対応するセクションから引用しています。上記で説明した原則に従ってインジケーターを修正しました。
結論
この記事では、インジケーター用の信号を作成するプロセスを最も詳細かつ理解しやすい方法で説明しました。
上記のコードは、著者の名前を変更せずにインジケーターにコードを追加する限り、任意のインジケーターで無制限に使用できます。
この記事が気に入っていただけて、この信号挿入方法が役立つと感じた場合は、コメントを残してトピックを評価してください。
- フリーランス:MetaTraderおよびMQLのカスタムプログラミング!
- シグナルバーインジケーター。どのバーから信号を取るべきですか? インジケーターの描画。
- CrossObjectALert MT4およびMT5ターミナル用オブジェクトと交差する際のアラートインジケーター
- MetaTraderでのメールとプッシュの使用
シグナルバー:知っておくべき重要なこと
質問がありますか?
質問がある場合は、ぜひお尋ねください。私たちは裏表のない取引を行っています。
さらに、当社の各製品は購入前にテストできます。
当社の製品に対するご関心とご支持に感謝し、高品質な基準を維持するよう努めています。
ご利用いただきありがとうございます!
質問がありますか?
この記事は次の言語でもご覧いただけます: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
コメントを残す