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

 
semiromid:

Прошу помощи .

Как в этот коментарий "Возникла ошибка " можно добавить переменную ?

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Point,Bid-150*Point, "Возникла ошибка ", 0);


ストリング・ストローカ

ダブルエックス


Stroka=StringConcatenate("An error occurred ", DoubleToStr(x, 0) );

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Point,Bid-150*Point, Stroka, 0)を実行。

 
bercut0077:

こんにちは、専門家、私はExpert Advisorによって得られる値に興味を持っているインジケータで

パラメータや変数の状態を示すために使用される特殊な定数。以下の値を設定することができる。

定数 価値 商品説明
NULL 0 空文字列の状態を示す
EMPTY -1 パラメータが空の状態であることを示す
EMPTY_VALUE 0x7FFFFFF デフォルト値、空値へのポインタ。カスタムインジケータで 使用
CLR_NONE 0xFFFFFFFF 色なしを示す
WHOLE_ARRAY 0 配列関数で 使用する。配列の全要素を処理する必要があることを示す


16進数で0x7FFFFFFは 10進数で2147483647に 相当します。

つまり、ある瞬間にインジケータ・バッファに空の値が表示される - これがExpert Advisorに表示されるものです。インジケーターバッファーの「空値」を設定できます。

void SetIndexEmptyValue( int index,double value)

インジケータラインの空値を設定します。空白の値は描画されず、DataWindowに表示されません。空値のデフォルト値は EMPTY_VALUE である。
パラメータ
インデックス - Index - その行のインデックス番号.0~7 であること。
価値 - 新しい "empty "値。
 
peshihod:


つまり、開封時間は1分前だろうが2分前だろうが関係ないのでは?

ポイント2が明確でない。漠然としていますね。

開店時刻はOrderOpenTime()で決定できる。

つまり、開封の瞬間は重要ではなく、1分前か2分前か?


Мгновенное открытие

1.Моментальное(Сиюсекундное +0.5 - 2 секунды) определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника).Система идентефецируюет ордер из друх вариантов (Sell или Byu) .

Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача (Например,если Sell: Alert("Открытый ордер на продажу"+y);),(Например,если byu: Alert("Открыт ордер на покупку"+w);), всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер(толи системой, толи вручную ), система вновь действует с пункта 1 по пункт 2 .

 
peshihod:

ストリング・ストローカ

ダブルエックス


Stroka=StringConcatenate("An error occurred ", DoubleToStr(x, 0) );

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Point,Bid-150*Point, Stroka, 0)を実行。


いい組み合わせですね、あの...
 
artmedia70:

パラメータや変数の状態を示すために使用される特殊な定数。以下の値を設定することができる。

しかし、このような空の値からどのようにインジケータを治すのかが明確でないため、私はコードを公開しました。
 
bercut0077:
そうですね、しかし、これらの空の値からインジケータを治す方法が明確ではありません、それが私がコードを公開した理由です、私は本当の助けを必要とする、すなわち、インジケータが常に1または-1を出力する必要があります。
インジケーターラインに空値を設定する関数の例を示しました。違うやり方でもいいんです。1と-1の2つの値だけが必要な場合、空の値が表示されたら、過去の状態(+1または-1)を確認し、空の値の代わりにそれを入力します。そうすると、バッファには常に+1か-1のどちらかが存在することになります。
仮に+1という値があるとします。空の値が表示されます。その代わり、-1が表示されたらすぐに前の値(+1)をバッファに入力し続け、それを入力する。
バッファに-1が入るようになりました。空の値が現れたらすぐに前の値を確認し(今は-1)、バッファに入力する。
この方法では、バッファに常に+1または-1が存在することになります。
 
artmedia70:

ありがとうございます。また新たな課題が出てきた...。
 
semiromid:

1.Моментальное(Сиюсекундное +0.5 - 2 секунды) определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника).Система идентефецируюет ордер из друх вариантов (Sell или Byu) .

Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача (Например,если Sell: Alert("Открытый ордер на продажу"+y);),(Например,если byu: Alert("Открыт ордер на покупку"+w);), всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер(толи системой, толи вручную ), система вновь действует с пункта 1 по пункт 2 .


保留中の注文と未決済の注文は異なる注文であることを理解しています。そして、保留中の注文が オープンされた場合、タスクは最初のもの、オープンオーダーに還元されます。私の理解が正しければ、非常に複雑になってきています。

課題は何ですか?もしかして、もっとシンプルな方法ですべてができるのでは?

 
親愛なる専門家の助けは、コードを変更するために、我々は取得する必要があります。
Cur_Trend без пустой величины, тоесть если появляется пустота, то нужно заменить последним известным значением
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightBlue
#property indicator_color2 Magenta

double CrossUp[];
double CrossDown[];
double Cur_Trend[];
int CurrentTrend = 0;
int starttime = 0;
extern int FasterEMA = 5;
extern int SlowerEMA = 8;

int init()
  {
   IndicatorBuffers(3); 
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
   SetIndexBuffer(2, Cur_Trend);
   starttime = TimeLocal(); 
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start() { 
   int limit, i, counter, loop, ii;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   loop = 0;
   for(i = 0; i <= limit; i++) {
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i-1); 
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
         if ((loop == 0) && (CurrentTrend != 1))  {
            CurrentTrend = 1;
            Cur_Trend[ii]= CurrentTrend;
            }
         if (loop == 0)  {
            loop = 1;
            }
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
              CrossDown[i] = High[i] + Range*0.5;
           if ((loop == 0) && (CurrentTrend != -1))  {
              CurrentTrend = -1;
              Cur_Trend[ii]= CurrentTrend;
           }
           if (loop == 0)  {
              loop = 1;
          }
       }
   }
   return(0);
}
 

専門家の皆様へ

以下の質問について、ご協力をお願いします。2色の線を1色で引いた後にもう1色で引くカスタムインジケータを持って います。Expert Advisorに、現時点での線の色を判断させる方法はありますか?

ファイル: