datetime NB_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_M1=TimeCurrent();}
......
}
で、前の値を保存する場合
datetime NB_01_M1, NB_02_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_02_M1=NB_01_M1; NB_01_M1=TimeCurrent();}
......
}
int s, len;
double main[];
double min, max;
len = (int)ChartGetInteger(0, CHART_VISIBLE_BARS); // длина копируемых видимых значений
s = (int)ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR) - len + 1; // 1-й видимый бар минус длина -- начало копируемых баровif (CopyBuffer(handle, MAIN_LINE, s, len, main) != len)
return;
// handle - хэндэл осциллятора// MAIN_LINE - меняем на нужный индекс буфера осциллятора// получаем мин. и макс. значения
min = main[ArrayMinimum(main, 0, WHOLE_ARRAY)];
max = main[ArrayMaximum(main, 0, WHOLE_ARRAY)];
CHART_PRICE_MIN および CHART_PRICE_MAX の識別子で指定します。
はtrue/falseを返します、何時のことでしょうか?
クラスには直前の目盛りの時刻が格納され、true/falseはクラスが返すのではなく、クラスの メンバ関数が返す。
クラスには直前の目盛りの時刻が格納され、true/falseはクラスが返すのではなく、クラスの メンバ関数が返す。
投稿されたコードでは、パブリックのみのバー!
クラスが新しいバーを報告することを考えると、時間はiTime(all you need,0)です。
それぞれ前回の時間 iTime(all you need,1)
Z.U. 分数で時間を知ることができるかも・・・。
投稿されたコードでは、publcはboolのみです!
クラスが新しいバーを報告することを考えると、時間はiTime(all you need,0)です。
それぞれ前回の時間 iTime(all you need,1)
Z.U. 分数で時間を知ることができるかも・・・。
私のミスです、すみません
端数は必要ありません。新しいバーの最初の1秒をキャッチする必要があります
ちょっと間違えました、すみません
端数は必要ないですね。新しいバーの最初の1秒をキャッチする必要があります
このように
で、前の値を保存する場合
とすると、次のようになります。
MakarFXさん、ありがとうございます、試してみます)
わかりました、ありがとう、私はそれについて考えて、テスターでそれを実行します。
コード内のmartin関数について詳しく教えてください。
マーティンが収益性の低い注文ではなく収益性の高い注文に広がるように、どこで何かを交換する必要がありますか?
コードの中のマーチン関数について詳しく教えてください。
マーチンが負けた注文ではなく、儲かった注文に適用されるように、どこで何を置き換えるべきでしょうか?
強調表示...<0の場合、負けトレードのロットを増加させる。
もし >0 ならば、利益取引のロットが増加します。
それが、あなたに必要なことだと思われます。本当にありがとうございました!!!
こんなやり方はダメだ!これは、オシレーターではなく、楽器の最小値、最大値を取得する方法です。経験豊富なプログラマーなら、こんな初歩的な質問には恥ずかしくて答えられない......。
実際には、CopyBuferを使用してオシレーターデータを取得する必要があります。
オシレーターの 作り方
その他、必要なオシレータもあります。
強調表示...<0の場合、負けトレードのロットを増やします。
もし >0 ならば、利益の出る取引のロットを増やします。
ありがとうございました。