double a1,a2,a11,a22;// значения первого и второго пика bool fl1 = false; // флаги наличия 1-го и 2-го пика для их сравнения для входа в рынок по 3-ему варианту АОbool fl2 = false; //bool signal_buy = false;
bool signal_sell = false;
double AO1 = iAO(Symbol(), signal_period, 1);
double AO2 = iAO(Symbol(), signal_period, 2);
double AO3 = iAO(Symbol(), signal_period, 3);
if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO22; fl1=true; Print ("образование первого пика",DoubleToStr(a1,6) );}
// определение наличия 1-го пика, флаг установлен
Print ("первый пик = ", DoubleToStr(a1, 6) );
// в след строке ошибка - получается, что после идентификации 1-го пика - эти же условия выполняются и для 2-го, а этого быть не должно... if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false) // определение наличия 2-го пика, флаги установлены
{
a11 = AO2; fl1=true; fl2=true; Print ("образование второго пика", DoubleToStr (a11,6));
if (a1<a11 && High [0] > High [1])
{ signal_buy = true; a1=a11; fl1=true;fl2=false;} // активируем бай и запоминаем параметры как первого пика else { a1=a11; fl1=true;fl2=false;} // просто запоминаем новый минимум - первый пик
}
if (AO2>0 || High [0] < High [1]) {fl1=false; fl2=false;} // если какой - либо столбец гистограммы пересекает 0-ю линию между сигналами 2-а пика// то сигнал считается недействительным. Cбрасываем флагиif (Mas_Tip[0]!=0 && signal_buy == true ) return(10); // при доливке и сигнале к покупке открываемся с рынка
signal_buy = false; // сбрасываем сигнал к покупке
保存された、これらの名前の下で、新しいチャートは、古い方法で、同じように開かれます。templatesフォルダにstrategytester.htmというファイルがあるのですが、このファイルをどうすればいいのかわかりません。
MTが再起動されていないなど、何かが間違っていたことを意味します。テスト済み、動作するはずです。
こんにちは、この質問について助けてください。 フォーラムで見つけられませんでした。 事は、エクセルでファイルを開いた後、データが日付として表現され、日付のフォーマットを変更すると、間違ったデータが得られます。 異なるタイプの日付を試しましたが、同じです。 読み込むときにデータ型を指定しようとしましたが(エクセルは尋ねます)、数値は点線で表されるようです(例えば1.5624)、エクセルが何もしようとしないのです。
パソコンリテラシーの講座に通ってWordやExcelの使い方を学ぶか、これらのソフトの本を探して勉強する必要があるので、この質問は掲示板のテーマとは関係ありません。
そして、具体的な質問については、必要なセルを選択し、カーソルを持っていき、マウスの右ボタンをクリックし、「セルの書式設定 ...」で、データの表示形式を希望するものを選択してください。
みんな、ヒントを教えてくれ...。
ヒストグラムの最初のピークと2番目のピークを比較し、2番目のピークの方が abs 値が小さければ、両方ともゼロ以下であることを条件に購入し、その後2番目のピークの値を最初のピークに割り当てる必要があります。
1つ目のピークのパラメータを特定すると、2つ目のピークでも同じ条件(同じパラメータ)が成り立つことがわかったのです。 そして、これはエラーです...。 私は、図1と図2の形成のこれらの事実(独自のパラメータを持つ)を何とかして「分離」したいのですが、私はベイのために私のコードと図を与える...。
取引のためのロボットを作成するのを助けることができるすべての人は、ちょうどアイデアを持っており、その実装の助けを必要とし、プログラミングで私自身は強くはありませんが、あなたもお金を得ることができますが、合理的な
取引のためのロボットを作成するのを助けることができるすべての人は、ちょうどアイデアを持っており、その実装の助けを必要とし、プログラミングで私自身は強くはありませんが、あなたもお金を得ることができますが、合理的な
理解できない。
ロシア語で書かれているが、Handbookの項目が理解できないhttps://docs.mql4.com/ru/basis/variables/formal
引用元
参照によるパラメータは、 1つのモジュール内でのみ 渡すことができる............。 (どのモジュールのこと?)
配列は参照渡しすることもでき、 すべての変更は元の配列に反映 されます。 (配列の要素を変更する?)
注文を保留に しました。
チケット = OrderSend(...,OP_SELLSTOP,...,TP,SL)。
If(チケット>0)
{全てOKで、保留中の注文が実行されるのを待ち、実行されれば全てOK}です。
さもなくば
{次のバーのCLOSEを待って、注文が開かなければ、OrderDelite()で強制的に閉じる;}。
コードヘルプ
"保留中の注文が実行されるのを待つ"
"次のバーのCLOSEを待って、注文が開いていなければOrderDelite()で強制的に閉じる;"
これをiLowest関数に 正しく置き換えるにはどうしたらよいでしょうか。
minimum=Low[iLowest (NULL, 0, MODE_LOW,KPeriod, 0)] - でしょうか?
質問です。
{次のバーのCLOSEを待って、注文がオープンしていなければ、OrderDelite()で強制的にクローズさせる;}。
コードヘルプ
"保留中の注文が実行されるのを待つ"
"次のバーのCLOSEを待ち、注文が開いていなければ、OrderDelite()で強制的に閉じる;"
そのためには、論理を少し理解し、命令で動くことの本質を理解する必要があります。
保留中の処理や何らかのイベント待ちを行うためには、現在の状態を記憶しておき、予想される状態と比較する必要があります。
あなたの場合、新しいバーが 開かれましたが、注文はトリガーされていないというイベントが1つあります。
そのためには、このようにすればいいのです。
- は、Ticket パラメータと、開いたバーの時刻を記憶しています。新しいバーがあれば、すぐに以前保存したチケットを取得し、それがマーケットチケットか最初のペンディングチケットかを確認することができます。また、保留になっている場合は、削除してください。
このバリアントは実際のトレードを想定したものではなく、あくまでテスター用です。
----------
つまり、Time[], OrderSelect(), OrderType(), OrderCloseTime() が必要なのです。