どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 149

 
ALXIMIKS:

問いは鈍いが、答えはどこにもない、いや、見間違えただけか。

関数では、あるいはどこかで、データ型の後に& 記号があり、私の記憶違いでなければ、一度だけ&&が あるのを見たことがあります。

func(int& mm_mode, string symbol, int magic,bool& stop) {.

何のために使うのか、何をするのか。 (参考までに、詳しく調べてみてください)))

これは参照による パラメータ転送です。
ホズ


さらに言えば?INITは、例えば切断などの場合に失敗することがあると議論されています。なぜなら、不測の事態に備え、データ自体を後から再初期化することはなく、一度しか実行されないからですだから、これは正確な方法ではないんです。
init()を必要な場所で、条件に従って呼び出すことを誰も妨げません。
 
gInitTrue = false;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return(gInitTrue =true);
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false)
   myInit();
 

hoz:

gInitTrue = false;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return(gInitTrue =true);
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false)
   myInit();

と同じなんです。

gInitTrue = false;   // В глобальных
-------------------------------------

bool init()
{
   if
   {
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные..
   }
   return(gInitTrue =true);
}
-------------------------------------
void start()
 {//Вызов из старта так:
  if (gInitTrue = false) init();
 }
 
001:

どうすれば最小限の労力でロジックを実装できるのかがわからない。

If(...)ストップオーダーを設定する。

If(注文の有効期限>時間)で注文を取り消し,if(...)で新しい注文を設定する。

難しいのは、すでに空いているポジションがいくつかある可能性があり、それらすべてをどう戦うかです。一番簡単な方法は何ですか?

ありがとうございました。

int MagicNumber=555;
//---
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  //--- фильтр по символу
         if (OrderSymbol()!=Symbol()) continue;
         //--- фильтр по магик номеру (если такая проверка предусмотрена)
         if (OrderMagicNumber()!=MagicNumber) continue;
         //--- срабатывает условие удаления отложенного ордера
         if (OrderOpenPrice()>vremya)
         {  
            if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
            {  
               if (OrderDelete(OrderTicket())==true)
               {  Sleep(5*1000); //после удачного удаления усыпляем советник на 5 секунд
                  if (/*установить стоповый ордер*/)
                  {   OrderSend(...)
                  }
               }
            }
            else return(0);
         }
}  }  }
 
Zhunko:
これは、パラメータを参照 渡ししていることになります。
init()を条件に従って好きなところで呼び出すことは誰も止めない。


そしてまた、この瞬間のコントロールの問題を解決しなければなりません。結局、「あるべき姿」を知るためには、「知る」ことが必要なのです。そして、例えばフラッグを通してそれを知ることができる。 例えば、フラッグがグローバルになることが判明しました。

gInitTrue = false;

init()では、関数の一番最後に値を代入します。

gInitTrue = true;

そして、関数の一番最初にスタートを制御することになります。

if (gInitTrue != true)
    init();
私の理解は正しいのでしょうか?それとも、他に検討すべきことがあるのでしょうか?
 
hoz:


しかし、もっと重要なことは?INITは、例えば切断などの場合に失敗することがあると議論されています。なぜなら、不測の事態に備え、データ自体を後から再初期化することはなく、実行は一度だけだからですですから、これはちょっと正しいやり方ではありません。
init()に時間制限はなく、理論的には数秒から数分間計算が行われます。ここで接続を断つのは意味がない。例えば、owlをチャート上で起動→ティックが来た→init()で計算開始(この時、ティックが多かったり、接続に失敗したり)→最初の操作のExpert Advisorがstart()で、新しいティックを待っている状態です。
 
指定したストップロスやテイクプロフィットが 最小のストップより小さい場合、それらを等しくしてストップを最小のストップとして使用するように、コードをどのように正しく書くべきなのでしょうか??
 
webip:
指定したストップロスやテイクプロフィットが最小のストップより小さい場合、それらを等しくしてストップを最小のストップとして使用するように、コードをどのように正しく書くべきなのでしょうか??
MathMax()
削除済み  
少しコードを教えてください。ファイルを開いた....レコードを書き、保存し、閉じるには、どのような関数を使えばよいのでしょうか...。
 
Zolotai:
少しコードを教えてください。ファイルを開いた....録音を書き込み、保存して、閉じるには、どの機能を使えばよいのでしょうか...。

https://docs.mql4.com/ru/files