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

 
Roger:
この1分間、Expert Advisorは最大40個の注文をオープンします。

もし、最初の1枚が開かなかったら?次の信号を1時間待つ?大丈夫です。

シグナルが出た→このローソク足に注文・ポジションのセット・オープンがあるかを確認→ない→セット・オープンがある→それ以上必要ない。

 
Sepulca:

これは、注文数を制御する方法です...あるいは、最初の関数への呼び出しだけ...


つまり、あなたのようなラインは1つではないのです。
 
皆さん、ありがとうございました。機能は動作しています。その結果を受信する。
 
extern int SecondsAfterTheBar = 0; 

int start(){
...
if(NewBar() == TRUE){
...
}
return(0);
}

bool NewBar(){
   RefreshRates();
   static bool initial = FALSE;
   static datetime stat_dtime = 0;
   if ((TimeCurrent() - stat_dtime >= Time[0] - Time[1] + SecondsAfterTheBar) == TRUE){
      stat_dtime = Time[0];
    if (initial == TRUE){
      return(TRUE);
    }else{
      initial = TRUE;
      }
   }
  return(FALSE);
}

遅すぎたかもしれませんが、とにかく誰でも私の解決策を使うことができます。

 
digits:

明らかに遅すぎるのですが、私の解決策はとにかく誰かにとって役に立つかもしれません。


ありがとうございます。より普遍的な場合

bool NewBar( datetime SecondsAfterTheBar = 0 )

そして、呼び出すときにラグを秒単位で指定することができます。

 


こんにちは、友人たち。直前のローソク足からインジケータの色の値を 取得して変数に書き込む方法を教えてください。例えば、赤なら double col =1, 黄色なら 2, 緑なら 3 といった具合です。いろいろなバリエーションを試したが、うまくいかなかった。私は色の値がバッファ内のユニットの可用性に依存することを理解しますが、何らかの理由で私は正確に最後の固定値、すなわち、アクティブなろうそくを得ることができない、それは常に新しい以前のろうそくの外観と色が変化し、最後の演技色を閉じています。どうしてわかるんだろう?)

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 1

#property  indicator_buffers 3
#property  indicator_color1  DarkGreen
#property  indicator_color2  Crimson
#property  indicator_color3  Yellow
//---- indicator parameters      
extern int RSI=8;
extern int valeur1=55;
extern int valeur2=45;

//---- indicator buffers
double   ExtBuffer1[];
double   ExtBuffer2[];
double   ExtBuffer3[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle (0,DRAW_HISTOGRAM, EMPTY,4,DarkGreen);
   SetIndexBuffer(0,ExtBuffer1);
   SetIndexStyle (1,DRAW_HISTOGRAM, EMPTY,4,Crimson);
   SetIndexBuffer(1,ExtBuffer2);
   SetIndexStyle (2,DRAW_HISTOGRAM, EMPTY,4,Yellow);
   SetIndexBuffer(2,ExtBuffer3);
//---- names
   IndicatorShortName("RSI above/under 45/55");
   SetIndexLabel(0,"RSI"+RSI +" is above 55");
   SetIndexLabel(1,"RSI"+RSI +" is under 45");
   SetIndexLabel(2,"RSI is in the mid zone ");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1st buffer
   for(int i=0; i<limit; i++)
       if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2) 
        {
        ExtBuffer2[i]=1;
        }
       else
       if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
        {
        ExtBuffer1[i]=1;
        }
       else 
        ExtBuffer3[i]=1;
   
   return(0);
  }

この色

インジケーター

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

 
Kero:


こんにちは、友人たち。直前のローソク足からインジケータの色の値を取得して変数に書き込む方法を教えてください。例えば、赤なら double col =1, 黄色なら 2, 緑なら 3 といった具合です。 いろいろなバリエーションを試したが、うまくいかなかった。私は色の値がバッファ内のユニットの可用性に依存することを理解しますが、何らかの理由で私は正確に最後の固定値、すなわち、アクティブなろうそくを得ることができない、それは常に新しい以前のろうそくの外観と色が変化し、最後の演技色を閉じています。どうしてわかるんだろう?)

int col;
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1st buffer
   for(int i=0; i<limit; i++)
       if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2) 
        {
        ExtBuffer2[i]=1;if(i=1)col =1;return;
        }
       else
       if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
        {
        ExtBuffer1[i]=1;if(i=1)col =3;return;
        }
       else 
       {
        ExtBuffer3[i]=1;
        if(i=1)col =2;
       }
   return(0);
  }
このように、数字の入った色が混ざらないようにすれば
 

これは受注開始の条件なのでしょうか?正しく理解できていますか?

 
KeinRich:

これは受注開始の条件なのでしょうか?正しく理解できていますか?


この条件は、必要なものすべてに対応します。なぜなら、これらのユーザー定義関数は、その名前から何をするのかを推測することができるだけだからです
order_total(0)
open(0,Lot,0,TP);
last_trade(1);
modify_orders(1);

 
KeinRich:

皆さん、こんにちは...。皆さんは、これが何と書いてあるか分かりますか?

int start()
...

return(0)です。

全ては私の推測に基づくものであり、あくまでも推測に過ぎません。

int start() {
   Comment(Info());                 // Вывод какой-то информации на экран
   int KOL_BUY  = order_total(0);   // Подсчёт количества Buy-позиций
   int KOL_SELL = order_total(1);   // Подсчёт количества Sell-позиций
   double l;                              

   if (order_total()==0) {          // Если количество ордеров равно нулю
      open(0,Lot,0,TP);             // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
      open(1,Lot,0,TP);             // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
      }
   if (KOL_BUY==0 && KOL_SELL!=0) { // Если нет Buy и есть Sell
      open(0,Lot,0,TP);             // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
      l=last_trade(1);              // Берём лот прошлой Sell
      open(1,l,0,0);                // Открываем Sell лотом прошлой Sell скорее всего без стопа и тейка
      modify_orders(1);             // Что-то модифицируем в Sell (в какой и что - не понятно)
      }
   if (KOL_BUY!=0 && KOL_SELL==0) { // Если нет Sell и есть Buy
      open(1,Lot,0,TP);             // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
      l=last_trade(0);              // Берём лот прошлой Buy
      open(0,l,0,0);                // Открываем Buy лотом прошлой Buy скорее всего без стопа и тейка
      modify_orders(0);             // Что-то модифицируем в Buy (в какой и что - не понятно)
      }
   return(0);                       // Выход из start()
}