[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 651

 
xtonic:

夕方のなぞなぞはmethaから。

私は引用アーカイブから引用符をインポートし、それは1分で言う:データベース:0 / 3665972、ウィンドウが空です - それは何を意味するのでしょうか?

スタンドアロンのEURUSD,M1チャートを開くと、大きな文字で表示されます。"Pending Update" - どういう意味ですか?

テスト実行中 - TestGenerator: no history data 'EURUSD1'.

端末を再読み込みする。すべてが正しく行われた場合、表示されるはずです。

 

以下のパラメータを持つインジケータがどのように描画されるかは、どこで読むことができます。

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, 色2)を設定します。

なぜ描画されるときとされないときがあるのか理解できません。通常のラインDRAW_LINEを描画する場合は理解できますが、インジケータバッファの値はY軸を設定しますが、要素の数はチャート上のバーの数に対応します。

2つのインジケーターバッファが同じバー上にあるときはバー上の水平方向のセグメントが表示されるが、一方のインジケーターバッファがEMPTY_VALUEの ときは何も表示されず、色付けのロジックが理解できないのはなぜですか?

 
ToLik_SRGV:

端末を再読み込みする。すべてが正しく行われていれば、表示されるはずです。


もう全部やりました、システムの再起動もしました、そこがポイントです。

 
xtonic:


もう全部やりましたよ、システムの再起動もしましたよ、そこがポイントです。


どこから見積もりを取り込んで いるのですか?

もし、あなたが何をしているのか、段階的に正確に説明することができれば、ここで助けを得られる可能性は高くなるでしょう。

 

良い人、慈悲を - 私は取得することはできません:滑らかなCCIの別のピーク後の買い/売り。

2番目のバッファを宣言しようとした(その方が意味がある)、エラーはない、ログは沈黙している、プリンタは、どうやら、ヤギのように置いているようだ-何も理解できていない。

 // Торговые критерии
   double c1b[];
   ArrayResize(c1b,PeriodB);
   double c1b_1[];
   ArrayResize(c1b_1,AvgB);
   for(i=1;i<=PeriodB;i++)
   {
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
   {
   c1b_1[i]=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i);
   }
   }
   
   double c1s[];
   ArrayResize(c1s,PeriodS);
   double c1s_1[];
   ArrayResize(c1s_1,AvgS);
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   {
   c1s_1[i]=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,i);
   }
   }

if (NormalizeDouble(c1b_1[i],4)<NormalizeDouble(c1b_1[i+2],4)&&NormalizeDouble(c1b_1[i+2],4)>NormalizeDouble(c1b_1[i+3],4))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if (NormalizeDouble(c1s_1[i],4)>NormalizeDouble(c1s_1[i+2],4)&&NormalizeDouble(c1s_1[i+2],4)<NormalizeDouble(c1s_1[i+3],4))
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

アタッチメントにはExpert Advisor全体が含まれています。ビジュアライゼーションでテストした結果、CCIは今回のバージョンでも旧バージョンでも描画されますが(添付ファイルをプロット)、スムージングされたものは描画されないため、トレードが開始されない状態です。

旧バリアント。

// Торговые критерии
   double c1b[];
   for(i=1;i<=PeriodB;i++)
   {
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
   }
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,1);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,3);
   
   double c1s[];
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   }
   double c1s_1=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,1);
   double c1s_2=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,2);
   double c1s_3=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,3);

if (NormalizeDouble(c1b_1,4)<NormalizeDouble(c1b_2,4)&&NormalizeDouble(c1b_2,4)>NormalizeDouble(c1b_3,4))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if (NormalizeDouble(c1s_1,4)>NormalizeDouble(c1s_2,4)&&NormalizeDouble(c1s_2,4)<NormalizeDouble(c1s_3,4))
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

誰も他の人をきれいにする時間がないのはわかりますが、せめてPrintを 正確に挿入する場所と、ジャーナルやログでフィードバックを見る場所と、注意すべきことをアドバイスしてください。

ファイル:
21.mq4  15 kb
 

こんにちは。

証券会社によってルールが違うので、部分決算について質問させてください。受注会計の正しいやり方がわからない。

問題:この特定のTSで新しく発注されたティックを、マジックを使わずに見つける必要がある。

1) 一部決済された注文にコメントがついていることに気づいた、コメントを読めるようにすべき // すべての証券会社がコメントを書いているかはわからないが

2) 注文開始日での検索 // すべての証券会社で使えるかどうかは不明

3) 部分決済注文が実行された直後に新しいティックを探し、それが正しい注文であるかどうか、出来高などを確認する。

4) その他

 
wenay:

オーダーカウントをどうするか。

ヘルプを読む
comment - Ordercomment text.コメントの最後の部分は、トレードサーバーで変更 することができます。

magic- オーダーのマジックナンバー.ユーザー定義識別子として使用できる。

マジックは、あなたを助けるために

注文を検索するには、次のようにします。

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { ...

.......

 
Craft:

具体的にPrintをどこに挿入すればいいのか、ログブックやログファイルのどこを見ればフィードバックされるのか、注意すべき点は何か、アドバイスをお願いします。

状況を確認したい箇所に印刷する(例えば、発注した場合、発注の事実や発注の誤りをジャーナルに印刷する)。

関数が呼び出せるかどうか確信が持てない場合、つまり、関数の呼び出し条件が満たされない場合は、関数の入力にPrintを追加してください。

端末の「エキスパート」タブで読み取った印刷物

 
IgorM:

以下のパラメータを持つインジケータがどのように描画されるかは、どこで読むことができます。

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, 色2)を設定します。

私はなぜ時々それが描画されない場合があります理解していない - 私はあなたが通常のラインDRAW_LINEを描画する場合は非常によくそれを理解する - インジケータバッファ値は、Y軸を設定しますが、要素番号は、チャートのバーの数に対応しています。

インジケータバッファのタイプがDRAW_HISTOGRAMの場合、パラメータは何ですか? 2つのインジケータバッファが1つのバー上で終了した場合、バー上の水平方向のセグメントが表示されますが、インジケータバッファの1つがEMPTY_VALUEの場合 - 何もなく、カラーリングロジックはまだ明確ではありません

DRAW_HISTOGRAM のスタイルは、線を描く他のスタイルと基本的には変わりません。X軸はバー数値で、Y軸はインジケータ配列の値で表されますが、よく言われるように、ニュアンスがあります。
簡単なインジケータを例にとって説明しましょう。

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
double SIMPLE[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0, SIMPLE);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){
      SIMPLE[shift] = 1;
   }
}
//+------------------------------------------------------------------+

別ウィンドウの1つの指標配列、すべての要素に値1が割り当てられている。これをチャートに投影すると、どうなるか(図1、左)。

データウィンドウ」にはインジケーターの読み取り値が表示されますが、そのウィンドウ内には何も表示されません。これがニュアンスで、MT4は1がどの程度の高さかわからないだけです。バーの高さはどの程度にするべきか?つまり、簡単に言えば、バーの分割価格が存在しないのです。お気づきのように、バーの高さを設定する個別のパラメーターはなく、バーの高さは他の要素との相対的な関係で自動的に設定されます。MT4で分割価格を設定するのは、私たちにお任せください。プログラム的に行うことができます。

#property indicator_minimum 0
#property indicator_maximum 2

インジケーターの設定で、最小値(例えば0)と最大値(例えば2)を固定すればよいのです。
これで、端末はバーの高さを認識し、1は0と2の中間に位置することになります :)))この例では、インジケータ配列の値が1つなので(特に「ニュアンス」を示すために)、それがどの程度なのかを端末に示す必要があります。配列のデータを1に置き換えて、例えばClose[shift]とすると、端末はハード的な制約を設けず、「アラMAKD」のような絵を描いてくれるのです。

ヒストグラムを別ウィンドウで描画するのではなく、全体的に描画すると、少し違ったイメージになります。最初のインジケータ配列のClose[shift]の値はそのままにして、パラメータだけを変更しましょう。

#property indicator_chart_window

再び同じ絵が浮かび上がる(図3左)。値は存在するが、表示されない。

端末はバーの高さを自動計算するための何らかの根拠が必要であり、一般ウィンドウでは最小値と最大値を固定できないため、2つ目のインジケータ配列が表示されることになる。2行目を追加し、0に設定します。

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_color2 Red
#property indicator_width2 2
double SIMPLE[];
double SIMPLE2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0, SIMPLE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1, SIMPLE2);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){
      SIMPLE[shift] = Close[shift];
      SIMPLE2[shift] = 0;
   }
}
//+------------------------------------------------------------------+

インジケータアレイが相対的に表示されるようになる。そして、すべてがあるべき姿になる(図4、右)。列はSIMPLE[shift] から SIMPLE2[shift]まで描画されます。

そして最後に、ローソク足を塗りつぶすインジケーターのコードですが、上昇していればブルー、下降していればピンクになります。ここでも各色に2つのアレイがあります(描画はホームからエンドまで(OpenからCloseまで)です)。

//+------------------------------------------------------------------+
//|                                                       SIMPLE.mq4 |
//|                        Copyright © 2010,Анатолий Сергеев  |
//|                                            mql.sergeev@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Анатолий Сергеев"
#property link      "mql.sergeev@yandex.ru"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_width1 2
#property indicator_color2 Blue
#property indicator_width2 2
#property indicator_color3 Pink
#property indicator_width3 2
#property indicator_color4 Pink
#property indicator_width4 2
double Blue_home[];
double Blue_end[];
double Pink_home[];
double Pink_end[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0, Blue_home);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1, Blue_end);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexBuffer(2, Pink_home);
   SetIndexStyle(3,DRAW_HISTOGRAM);
   SetIndexBuffer(3, Pink_end);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){
      if(Close[shift] > Open[shift]){
         Blue_home[shift] = Open[shift];
         Blue_end[shift] = Close[shift];
      }else{
         Pink_home[shift] = Open[shift];
         Pink_end[shift] = Close[shift];
      }
   }
}
//+------------------------------------------------------------------+

 
IgorM:
ヘルプをお読みください。
comment - オーダーコメントテキスト.コメントの最後の部分は、トレードサーバーで変更 することができます。

magic- オーダーのマジックナンバー.ユーザー定義識別子として使用できる。

魔法を使いこなす

注文の有無を確認するには、次のようにします。

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { ...

.......



タスク:この特定のTSのために新しく出現したオーダーのティックを、 マジックを使わずに 見つける必要があります。