[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 53

 

何かスッキリしたような...。ここでは、グローバル変数 double Delete_Level が宣言されている状況です。if文の本体では、新しい値が代入される。

Delete_Level = MA3

また、本体から離れる際にも、Delete_Levelのグローバル値は変化しない。質問:if文の本文を終了するときに、グローバル変数Delete_Levelの 値を変更するにはどうすればよいですか?

 
vovan-gogan:

申し訳ありませんが、お手柔らかにお願いします) のエラーについて教えてください。


完全な平等はありえないということ。これが現実の世界であり、このプロセスや操作などには不確実性や許容範囲が存在するのです。基本 "を学ぶ...:-P これ以上ないほどシンプルです。私が勧めた通りにやって、その状態がうまくいくかどうか、教えて ください。私自身も興味があります。ありがとうございます。


 
vovan-gogan:

何かスッキリしたような...。ここでは、グローバル変数 double Delete_Level が宣言されている状況です。if文の本体では、新しい値が代入される。

また、本体から離れる際にも、Delete_Levelのグローバル値は変化しない。質問:if文の本文を終了するときに、グローバル変数Delete_Levelの値を変更するにはどうすればよいですか?


どうして変わらないの?もちろん、変化します。コードを印刷し、F12キーを押しながらLogタブを見ます - 可視化モードでステップバイステップのテストを行います。
 
sergeev:

MQLが理解する日付とは?
注文する前に確認したいのですが。10-30にセッションが始まり、10-35で買い注文を出すためのすべての条件が満たされたとします。しかし、現在の時刻が 10-45以上になるまで注文を出してはいけません。
 
Roman.:

どうして変わらないんだろう?もちろん、変化します。


こんな感じです。例えば、あるEAで、まずグローバル変数 int Ordersを宣言し、保留中の注文が出たら、int Ordersの値が以下のように変化するようにします。

int Orders;
if (MA2_2<MA1_2 && MA2_1>MA1_1)//пересечение МА
{
   if (OrdersTotal()>= 1)
   {
   return;
   }
         SL = 30;
         TP = 12;
         S_Price = Low[1] - 1* Point;
         if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0)
            {
               Orders++;
               Alert ("Ордер выставлен. Orders=",Orders );
            }
}           

しかし、これはオーダースで変わることはありません。毎回、「オーダーが 決まりました」というメッセージが出ます。受注=1"

 
vovan-gogan:


こんな感じです。例えば、あるEAにおいて、まずグローバル変数int ordersを宣言し、注文が発注された場合、int ordersの値が以下のように変化するようにします。

しかし、オーダーに変化はない。毎回「注文が 入りました」と表示される。受注=1"


グローバル変数ではなく、start関数のローカル 変数が必要です。だから、ぜひ試してみてください。

int start()                            // Спец. функция start
  {
    int Orders=0;
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //пересечение МА
        {
          if (OrdersTotal()>= 1) return(0);   
          SL = 30;
          TP = 12;
          S_Price = Low[1] - 1* Point;
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0)
            {
               Orders++;
               Alert ("Ордер выставлен.Orders = ",Orders );
            }
        }   
       Alert ("Ордеров нет. Orders = ",Orders );    
//----------------------------------------------------------------  
   return;                             // Выход из start()
  }
 
Roman.:


そこにはグローバル変数は必要なく、スタート関数のためのローカル変数が必要です。だから、試してみてください。


私の例でも同じではないでしょうか?どう違うのですか?スタート機能を付けなかったことを除けば。
 
vovan-gogan:

私の例でも同じではないでしょうか?どう違うのですか?スタート機能を付けなかったことを除けば。

私の例を試してみてください。
 
Roman.:

私のバージョンを試してみてください。

でも、やってみると違いがわからない。何がいけなかったのか、教えてください。
 
チャート(リアルタイム)を開くと、なぜか、教えてください。 M30タイムフレーム というパラメータを設定し、int shift=iBarShift(NULL,PERIOD_M5,some_time); を適用すると、その通りになりますが、テスターで期間M30で同じ指標を実行すると、シフトが計算されないのですが?