[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 40

 
Twilight:


Expert Advisorにインジケータコードを突っ込んで、そこで再計算しろということでしょうか?

もし、そのような指標が5つあったらどうでしょうか?

何か別の方法で再計算する方法はないでしょうか?

iCustom経由でExpert Advisorにすべてのインジケータを添付しています。

インジケータとその最後の値は、新しいバーごとに呼び出されますが、タイムフレームを変更して戻るまで、取引されたシンボルウィンドウに再描画されることはありません。

チャートをクリックして更新を押しても再描画されず、なぜかタイムフレームを変更したときだけ再描画されます。

あなたの想像力はわかりません。もし、このインジケーターのいいところを知りたいなら、そのコードを見て回るといい。特に、可変限界。このインジケーターに存在する。ちなみに、このインジケーターへのコメントから判断すると、作者はインジケーターのリライジングを禁止しており、好きなようにやっても良いのですが、リライジングの本質は数バー前のシグナルの出現なので、思い通りにならないのです。

頑張ってください。

 
silatyt:

私はあなたのファンタジーに気づいていません。インジケータから良い画像を得るには、そのコードを掘り下げる必要があります。特に、リミット変数で。このインジケーターに存在する。ちなみに、このインジケーターへのコメントから判断すると、作者はインジケーターのリフティングを禁止しています。 好きなようにやればいいのですが、リフティングの本質は数バー前のシグナルの出現ですから、思い通りになりません。

頑張ってください。

メタトレーダーでは、どのツールウィンドウでも、右クリックするとRefreshボタンがあり

この関数をプログラムで呼び出す方法はありますか?

RefreshRatesはそれではないようです。

 

EAのコードを2~3行で実装する方法を教えてください。

シグナルが入ったとき(2つのMAが交差したときなど)

1.エキスパートアドバイザーは、シグナルの時間(時、分)を検出し、それを格納します。

2. 1分間カウントダウンします。

次に、何かをする準備(例:注文を開くなど)

 
Twilight:
メタトレーダーでは、どのツールウィンドウでも、右クリックするとUpdateボタンがあります。

この関数をプログラム的に呼び出す方法はありますか?

RefreshRatesはそれではないようです。


図書館4.7.7 ServiceTickIndicators()が必要です。

 //=====================================================================================================================================================================
 // 4.7. Функции для управления обновлением графика.
 //=====================================================================================================================================================================
 // 4.7.1. Функция запускает обновление всех графиков с указанным периодом. Если обновление уже запущено, то функция меняет период обновления графиков.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshAllCharts(int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //=====================================================================================================================================================================
 // 4.7.2. Функция запускает обновление всех графиков однократно. Вызов функции при работающих других режимах останавливает обновление всех графиков.
 void ServiceRefreshAllOnceCharts();
 //=====================================================================================================================================================================
 // 4.7.3. Функция запускает обновление указанного графика с указанным периодом. Если обновление уже запущено, то функция меняет только период обновления графика.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshChart(int hwndChart,        // Системный дескриптор обновляемого графика.
                          int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //=====================================================================================================================================================================
 // 4.7.4. Функция останавливает обновление указанного графика.
 void ServiceStopRefreshChart(int hwndChart); // Системный дескриптор графика, на котором останавливается обновление.
 //=====================================================================================================================================================================
 // 4.7.5. Функция корректно останавливает обновление всех графиков при bTerminate = FALSE, иначе функция завершает обновление аварийно.
 void ServiceStopRefreshAllCharts(int bTerminate); // Флаг аварийной остановки потоков обновления графиков.
                                                   // FALSE - потоки останавливаются корректно, TRUE - потоки останавливаются аварийно.
 //=====================================================================================================================================================================
 // 4.7.6. Функция эммулирует тик для эксперта на указанном графике.
 void ServiceTickExpert(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.
 //=====================================================================================================================================================================
 // 4.7.7. Функция эммулирует тик для индикаторов на указанном графике.
 void ServiceTickIndicators(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.

ただ、少しは待ったほうがいい。新バージョンを掲載しました。もしかしたら、今日、司会者が掲載するかもしれません。

 
Zhunko:

図書館4.7.7 ServiceTickIndicators()が必要です。

ただ、もう少し待ったほうがいい。新バージョンを掲載しました。もしかしたら、今日、司会者が掲載するかもしれません。


有償?

 
Twilight:
メタトレーダーでは、どのツールウィンドウでも、右クリックするとRefreshボタンがあり

この関数をプログラム的に呼び出す方法はありますか?

RefreshRatesはそのようなことはないようです。


#import "user32.dll"
int PostMessageA (int hWnd, int  Msg, int wParam, int lParam);
#import

PostMessageA (WindowHandle (Symbol(), Period()), 0x0111, 33324, 0);

しかし、それでは何も得られない。:)

 
Twilight:


有償?

いいえ、どこにも支払済みとは書いてありません。
 
silatyt:

でも、それでは意味がない...。:)

視覚的に描き直さなければならないのです。

直近のN本のバーを循環させ、シグナルがあれば - signal=trueとする。

その後、再描画しない他のすべてのインジケータを好きなように使用することができます。

PostMessageA (WindowHandle(Symbol(),Period()),0x0111,33324,0)。

どこに挿入するのか?Startの冒頭で?

ありがとうございます。

 
Twilight:

視覚的に描き直されます。

直近のN本のバーを循環させ、シグナルがあった場合はsignal=trueとする。

そして、他の再描画しないインジケーターで好きなことをすればいいのです。

PostMessageA (WindowHandle(Symbol(),Period()),0x0111,33324,0)を参照してください。

どこに挿入するのか?Startの冒頭で?

ありがとうございます。

インジケータ呼び出しの 前(start()の最初でも可)。

P.S. 誰もが再描画から「逃げ」ているのに、その背後にいるのは--型破りな......。:))

 
silatyt:

インジケータを呼び出す前(start()の最初でも可)。

P.S. 誰もが再描画から「逃げて」いるのに、あなたはその陰に隠れている......型破りですね。:))


m5で再描画し、過去12本のシグナルがあるかどうかをチェックします。

そして、新しいm15 m30では、m5でシグナルが出たかどうか、価格がまだ適切かどうか、つまりエントリーの要件を満たしているかどうかをチェックします。

また、同じ時間帯に何回信号が変化したか、消えたかなどの分析も可能です。

また、シグナルには名前がついており、名前によって視覚的にチャートを分析することが可能です =)

総じて、実験の場としては大きいですね(笑)。

私の改造で

http://komplekt73.ru/forex/m5chastr.htm

理由: