質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

1回答

5545閲覧

MQL4インジケーターのサインがリペイントしないようにしたい

marupon

総合スコア12

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2018/08/11 05:01

編集2022/01/12 10:55

MQL4インジケーターのサインが1分から5分に変えてまた1分に戻した時に
サインが消えてる場合があります。
ソースコードで自分なりにリペイントしないようにしたつもりなのですが
リペイントします。

ソースコードでどこを変更すればリペイントしないようになりますか?
よろしくお願いします。

bool Gi_100 = FALSE; bool Gi_104 = FALSE; bool Gi_108 = FALSE; bool Gi_112 = FALSE; int Gi_116 = 0; bool Gi_120 = FALSE; bool Gi_124 = FALSE; // E37F0136AA3FFAF149B351F6A4C948E9 int init() { SetIndexStyle(0, DRAW_ARROW, EMPTY, 1); SetIndexArrow(0, 241); SetIndexBuffer(0, G_ibuf_76); SetIndexEmptyValue(0,0); SetIndexStyle(1, DRAW_ARROW, EMPTY, 1); SetIndexArrow(1, 242); SetIndexBuffer(1, G_ibuf_80); SetIndexEmptyValue(0,0); return (0); } // 52D46093050F38C27267BCE42543EF60 int deinit() { return (0); } // EA2B2676C28C0DB26D39331A336C6B92 int start() { int Li_8; double ima_12; double ima_20; double ima_28; double ima_36; double ima_44; double ima_52; double irsi_60; double irsi_68; double irsi_76; double Ld_84; double Ld_92; int Li_100 = IndicatorCounted(); if (Li_100 < 0) return (-1); if (Li_100 > 0) Li_100--; int Li_0 = Bars - Li_100; for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) { Li_8 = Li_4; Ld_84 = 0; Ld_92 = 0; for (Li_8 = Li_4; Li_8 <= Li_4 + 9; Li_8++) Ld_92 += MathAbs(High[Li_8] - Low[Li_8]); Ld_84 = Ld_92 / 10.0; ima_12 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4); ima_28 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1); ima_44 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 - 1); ima_20 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4); ima_36 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1); ima_52 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 - 1); irsi_60 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4); irsi_68 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 + 1); irsi_76 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 - 1); if (irsi_60 > 45.0 && irsi_68 < 45.0 && irsi_76 > 45.0) { Gi_104 = TRUE; Gi_112 = FALSE; } if (irsi_60 < 55.0 && irsi_68 > 55.0 && irsi_76 < 55.0) { Gi_104 = FALSE; Gi_112 = TRUE; } if (ima_12 > ima_20 && ima_28 < ima_36 && ima_44 > ima_52) { Gi_100 = TRUE; Gi_108 = FALSE; } if (ima_12 < ima_20 && ima_28 > ima_36 && ima_44 < ima_52) { Gi_100 = FALSE; Gi_108 = TRUE; } if (Gi_100 == TRUE && Gi_104 == TRUE && Gi_116 != 1) { G_ibuf_76[Li_4] = Low[Li_4] - 0.8 * Ld_84; if (Li_4 <= 2 && Alerts && (!Gi_120)) { Alert(Symbol(), " ", Period(), " Signal:BUY! "); PlaySound(Symbol()+".wav"); Gi_120 = TRUE; Gi_124 = FALSE; } Gi_116 = 1; } else { if (Gi_108 == TRUE && Gi_112 == TRUE && Gi_116 != 2) { G_ibuf_80[Li_4] = High[Li_4] + 0.8 * Ld_84; if (Li_4 <= 2 && Alerts && (!Gi_124)) { Alert(Symbol(), " ", Period(), " Signal:SELL! "); PlaySound(Symbol()+".wav"); Gi_124 = TRUE; Gi_120 = FALSE; } Gi_116 = 2; } } } return (0); } コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

多分自身で書いたコードではないんだと思いますが矢印の条件の部分でi-1番目のインジケータの値を参照していればそれはリペイントもするかと

投稿2019/07/02 05:26

miya71ma

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問