[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 186

 
Dimka-novitsek:
気になる、私のバージョンのどこが悪いのか?

あなたのバージョンでは、まず、1回の計算で300回スリープしてしまいます。

2つ目は、1回のクリックで 600回もメッセージを作成するのは疲れるということです。

そして3つ目は、チャート上にこの赤い線を引くことです。赤い線は最大0.86、緑の線は最小1.34です

ということで、結果を見ることができません。

 
ScioMe:

緑色で描画されますが、閉じる前のローソク足だけですそれ以前は、決してそうではありません。

StopLossやTakeProfitを変更 した場合のみ描画されると思います。
 
pyatka__ASD:

こんにちは。

この式で計算したバーシフトのパターンを見つけるにはどうしたらよいですか? ObjectGetShiftByValue

なにがなんだか
 

結果が出ないんです。

ありがとうございます!!私は子羊です。

 
eddy:
StopLossやTakeProfitを変更 した場合のみ描画されると思います。

そうですね、ログで確認しました。
 
オープニングの小節で変えています。
 

WinAPI関数の呼び出しのニュアンスについての質問です。

関数GetPrivateProfileStringAがあります。

関数を mqlにインポート する。

#import "kernel32.dll"
  int GetPrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string Default,        // Значение по умолчанию
        string ReturnedString, // Возвращаемое значение параметра
        int    nSize,          // Размер буфера под значение параметра
        string FileName);      // Полное имя файла
  int WritePrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string sString,        // Записываемое значение параметра
        string FileName);      // Полное имя файла
#import

パラメータの一つを説明する。

lpKeyName [in] 

The name of the key whose associated string is to be retrieved. 
If this parameter is NULL, all key names in the section specified by the lpAppName parameter 
are copied to the buffer specified by the lpReturnedString parameter.

質問 - "本当のNULL "を渡すにはどうしたらよいですか?

mql NULL" (また""文字列)を渡すと、"section内のキー "のリストではなく、デフォルト値が返されるようになった。

lpDefault [in] 
A default string. If the lpKeyName key cannot be found in the initialization file, 
GetPrivateProfileString copies the default string to the lpReturnedString buffer. 
If this parameter is NULL, the default is an empty string, "".

私が "real NULL "と言ったのは、Basicに関するフォーラムで同様の問題(まさにこの関数によるもの)について読んだことがあるからです。フォーラムは英語圏(=理解できることはすべて事実と異なる)であり、問題はBasicsによって解決された。

 
eddy:
まあ、オープンバーで変わるんですけどね


私が理解する限り、OrderModify()はオープンバー以外のバーのストップも変更できるのですね?私のコード(ほとんどS. Kovalevの本から)は、ストップがオープン中だけ でなく、いくつかのイベントの発生時に変更されるように構築されています。

 switch(Tip)                                  // По типу ордера
   {
      case 0 :                                // Ордер Buy
         if (NormalizeDouble(SL,Digits)<     // Если ниже желаем.
            NormalizeDouble(Bid-TS*Point,Digits))
               {
      // Ниже я только добавил функцию New_Stop
                  SL=Bid-New_Stop(TS)*Point; // то модифицируем его
                  string Text="Buy ";         // Текст для Buy 
                  Modify=true;                // Назначен к модифи.
               }
               break;
// Функция из этой же книги:
int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
 

インジケータライン

val1[]に時間を代入する方法を教えてください。もしくは、やり方や使い方が分からないので教えてください。ラゲール指標。
   i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
   LastLag++;}

例えば、線分val1[c]が0.45を上方に横切った時はTimeBegin、下方に横切った時はTimeEndに時間値が設定されます。といった具合に、グラフ全体を通して

ファイル:
 
ScioMe:

私が理解する限り、OrderModify()はオープニングバー以外のバーでもストップを変更することができるのですね。

矢印はオープンバーに表示され、色を設定するだけです。