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

 
kolyango:

作り方

条件1が満たされたら、それ以降は毎ティックチェックせず、次のティックで条件2もチェックし、さらに条件3もチェックして、すべてのフラグを偽と宣言するのですか?

bool проверять_ус1=true;
bool проверять_ус2=true;
bool проверять_ус3=true;
void start(){
      if(проверять_ус1)
         if(Open[0]>Close[1]){//условие 1
            проверять_ус1=false; //заглушка
         }
      if(проверять_ус2)
         if(Open[0]<Close[2]){//условие 1
            проверять_ус2=false; //заглушка
         }
      if(проверять_ус3)
         if(Open[0]==Close[3]){//условие 1
            проверять_ус3=false; //заглушка
         }
      if(!проверять_ус1&&!проверять_ус2&&!проверять_ус3){
            проверять_ус1=true;
            проверять_ус2=true;
            проверять_ус3=true;      
      }
}

を、何が書いてあるのかがはっきりするまで何度も読めば、幸せになれるはずです。

 
costy_:

は,すでに(前の)i+1個のremoveを確立しているバーのデータを読み取る。しかし、作成者のアルゴリズムは壊れてしまう(彼はよく知っている、私もオープンで生成された+1データで仕事をしている)。


作成者が言うように、i+1は他のインディケータからデータを供給するためだけのもので、その後ブレークダウン条件をチェックしますが、それ以降の計算はすべてiで行われます。

インジケータが自動更新されず、リロード(TFの変更、プロパティの変更)時のみ更新されることです。

何が理由なのか理解できない。

サイクル終了時に、前のバーの必要なインジケータからデータ計算を突っ込んで、iだけ使ってみましたが、ダメでした。

 
costy_:

まだ、わからない。

写真で説明したほうがわかりやすいかもしれませんね。


はい、ありがとうございます青色でハイライトされている箇所は、D1の高値より上で閉じたロウソクを見つける必要があります。
 
costy_:

書かれていることが明確になるまで、何度もコードを読めば、幸せになれます。


いつもありがとうございます。
 
LOA:


制作者としては、i+1 は他のインジケータからデータを供給するためだけのもので、その後、故障の状態をチェックしますが、それ以降の計算はすべて i で行うとしています。

インジケータが全く自動更新されず、リロード(TFの変更、プロパティの表示)のみで更新されることです。

その理由がわからない。

前のバーの必要なインジケータからのデータ計算を、サイクルの最後に押し込んでiだけ使ってみましたが、ダメでした。

ある

           int  proboy_5_UP = iCustom (NULL,0,"ME_Proboy_F5_For_EX",0,i+1);/*запрос значения индикатора 

こんな感じでいいんじゃないでしょうか。

           double proboy_5_UP = iCustom (NULL,0,"ME_Proboy_F5_For_EX",0,i+1);/*запрос значения индикатора 
 
costy_:

あなたは

こんな感じでいいんじゃないでしょうか。


ない価格ではなく、指標となる数値(ヒストグラム)を取得し、その値は1または-1である。
 
costy_:

書かれていることが明確になるまで、何度もコードを読めば、幸せになれます。


このようなコードの条件をどのように書き換えるのか、理解できないのですが?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
LOA:

ない価格値ではなく、インジケータ(ヒストグラム)を取るので、値が1であったり-1であったりします。

私はまだ答えることができない、彼らはintのdoubleを返すように起動されたindsは、彼らが本当にintが> 0に割り当てられるように> 1であることができ、その逆は(少なくとも*.ex4)?

ME_Proboy_F5_For_EX

ME_Order_ATR_For_EX

2011.12.07 18:10:42 Cannotopen file\expertsindicators_Proboy_F5_For_EX.ex4' on AUDUSD,M30

すべてMACDに置き換えて、すべてうまくいきました。

ファイル:
temp_1.mq4  14 kb
 
kolyango:


このようなコードの条件をどのように書き換えたらいいのか、わからないのですが?

bool проверять_ус1=true;
bool проверять_ус2=true;
bool проверять_ус3=true;
void start(){
      if(проверять_ус1)
         if(Open[0]>Close[1]){//условие 1
            проверять_ус1=false; //заглушка
         }
      if(проверять_ус2)
         if(Open[0]<Close[2]){//условие 1
            проверять_ус2=false; //заглушка
         }
      if(проверять_ус3)
         if(Open[0]==Close[3]){//условие 1
            проверять_ус3=false; //заглушка
         }
      if(!проверять_ус1&&!проверять_ус2&&!проверять_ус3){
            проверять_ус1=true;
            проверять_ус2=true;
            проверять_ус3=true;      
      }
}

何が書かれているのかが明確になるまで何度もコードを読めば、満足できるはずです。

なぜ国旗が必要なのですか?)国旗はなくても大丈夫です。

   if(Close[i+3]>Open[i+3]&&Close[i+2]>Open[i+3]&&Close[i+2]<Close[i+3]&&Close[i]>Close[i+3]) //открываем бай

 
costy_:

私はまだ答えることができない、彼らはintのdoubleを返すように起動されたindsは、彼らが本当にintが> 0に割り当てられるように> 1であることができ、その逆は(少なくとも*.ex4)?

ME_Proboy_F5_For_EX

ME_Order_ATR_For_EX

2011.12.07 18:10:42 Cannot open file \expertsindicators_Proboy_F5_For_EX.ex4' on AUDUSD,M30

すべてをMACDに置き換えて、すべてが機能するようになりました。


はい、履歴上のインジケータは、任意のトリガー付きインジケータで動作します。実生活では動作しません、M1で確認しました。

もし私の理解が正しければ、条件 >0, <0 の部分を ==1 または ==-1 に置き換えてみます。