[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 314

 
hoz:

自分もクソエラーが出た。実は、理屈はまったくないのです。https://book.mql4.com/ru/appendix/limits に従って保留注文を出すには、開始価格がBid(売り)より下かAsk(買い)より上である必要があります。要求されたとおりにしています。

時々、0と 130の エラーが出ます。130は ストップが違うというエラーですが、これは修正時に発生する可能性があり、注文開始時には発生しません。

スクリーンショットでは、pr 機能で表示される状況とプリントをご紹介しています。

このバグを取り除く方法をアドバイスしてください。このエラーには本当にうんざりしています。論理的には、全く対象外です。

ビクター、アベノミクス・コンプライアンスとは別に、予防的なクリアランスを使う必要があります。注文が送られてくる間、価格は止まっていませんから、制限区域に一歩も二歩も踏み込むことになりますよ。改造のように挿入して、滑りを大きくすれば、大丈夫!Realでノーミスで作業中!がんばってください。
 
borilunad:
ビクター、アベノミクスとは別に、予防的なギャップを使う必要があります。注文が送られている間、価格は止まっていないので、禁断のゾーンに一歩も二歩も踏み込むことになるのです改造のように挿入して、滑りを大きくすれば、大丈夫!Realでノーミスで作業中!がんばってください。


ボリス スリッページはもう3点分なんですね、これ、3点分と理解しています。あとどれくらい必要ですか?

こんな感じか。

bool OpenBuy()
{
   int ticket = -1;
   double OOP = High[1] + i_thresholdToUp * pt;
   pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ("g_stopLevel = " + g_stopLevel);

   if ((ND(OOP) - g_stopLevel)> Ask)
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0, CLR_NONE);
   else pr ("Ордер послать не удалось " + GetLastError());
   
   if (ticket > 0)
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                            // .. успешно выполнены
       return (true);
   }
}

ここに余分な機能を入れないように、どうすれば良い形で実装できるのか悩んでいます。

 

hoz, どうすればさらにifを短くできるか考えていました。参照:変数を置くと

bool _if=((2*trend-1)*Δ≥const);//аналогично _if=(±Δ≥const)

は、cnt=cnt+step となり、ここで

if(_if) step=1;
}else{ step=-cnt;
}

しかし、1=cnt/cnt、a -cnt=cnt/(-1)、分母が違うだけです。ここで、x^0=1, x^1=x、つまり、ブール変数_ifを指数に置くことができることを思い出してください、つまり、step=cnt/a*(cnt^_if); ここで

if(_if) a=1;
}else{ a=-1;
}

しかし、±aは本来2*_if-1、つまり。

bool _if=((2*trend-1)*Δ≥const);//аналогично _if=(±Δ≥const)
int step=cnt/(2*_if-1)*(cnt^_if);//принимает два значения: 1 и -cnt
cnt=cnt+step;

あるいは、以下のように単純化します。

bool _if=((2*trend-1)*Δ≥const); cnt=cnt+cnt/((2*_if-1)*(cnt^_if));
 
hoz:


ボリス スリッページはもう3なんですね、3点というのはそういう理解でいいんです。あとどれくらい必要ですか?

こんな感じか。

ここに余計な関数を入れないように、もっとスマートに実装する方法はないかと考えています。

スリッページは3桁で4桁、30桁で5桁必要ならいいんですけどね~。
 

マーケットが開いているメッセージと閉じて いるメッセージを表示するスクリプトをアドバイスしてください。

例えば、月曜日が0.00.01になると、市場が開くというメッセージを出し、次に「市場は開いている」というメッセージを出し、同様に、市場が閉じたというメッセージを出すのです。

スクリプトを書いたのですが、うまくいきません (( 手伝ってください。

// определяем начало и конец торгов.
      // начало торгов в понедельник в 0.00.01
      
      if(DayOfWeek()==1 && Hour()== 0 && Minute()== 0 && Seconds()==01)
      {
         Alert("Рынок открылся.");
      }
      // конец торгов в Пятницу в 23.59.59
      if(DayOfWeek()==5 && Hour()== 23 && Minute()== 59 && Seconds()==59)
      {
         Alert("Пятница, Рынок закрылся.");
      }

 

BAY STOPとSELL STOPを保留注文できるロボットはありますか? ある 時点で 、その時点の価格から最小ステップでトリガーする。要するに、ニュースの下。手持ちの時間がないのです。
 
hoz:

自分もクソエラーが出た。実は、論理はまったくないのです。https://book.mql4.com/ru/appendix/limits に従って保留注文を出すには、開始価格がBid(売り)より下かAsk(買い)より上である必要があります。要求されたとおりにしています。

時々、0と 130の エラーが出ます。130は ストップが違うというエラーですが、これは修正時に発生する可能性があり、注文開始時には発生しません。

スクリーンショットでは、pr 機能を使って表示された状況とプリントをご紹介しています。

このバグを取り除く方法をアドバイスしてください。このエラーには本当にうんざりしています。論理的には、全く対象外です。

130回目のエラーは、必ずしもストップオーダーではありません。また、少なくとも保留中の注文を置くまでの距離です int MarketInfo(Symbol(), MODE_STOPLEVEL)
 
borilunad:
スリッページ3桁を4桁に、30桁を5桁にしてほしい!

その割にはテスターでは全く滑りがないわけですが...。30に 修正しました。

artmedia70:
130回目のエラーは、必ずしもストップオーダーとは限りません。また、少なくともint MarketInfo(Symbol(), MODE_STOPLEVEL)

と等しい保留中の注文の距離である。

これです。

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = -1;
   double OOP = High[1] + i_thresholdToUp * pt;
   pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ("g_stopLevel = " + g_stopLevel);

   if (ND(OOP)> (Ask + g_stopLevel))
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE);
   else pr ("Ордер послать не удалось " + GetLastError());
   
   if (ticket > 0)
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                            // .. успешно выполнены
       return (true);
   }
}

どこで

g_stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL) * pt;

アルテムさんと同じような書き方ですね。昨日も理屈では同じだった。しかし、エラーは山積みです。リクオートや スリッページが全くないテスターで、余計なポイントを増やしてうまくいく意味がないのです。

同じ轍を踏まないために、より普遍的な方法で何をすべきなのか。スリッページ以外で2-3ポイント追加されたことがないExpert Advisorをたくさん見てきました。結局、この場合、要求価格から6ppの乖離が生じることになる。そして、これは正しいことではありません。Expert Advisor は、ティックと分の両方に対応して書かれています。そして、トレーディングには精度がありそうです。だから、正確であってほしい、大きなインデントがないようにしたい...。

 

フレンズ!

世界的な問いが生まれた

週末にターミナルでティックストリームを取得し、静かにEAを書いたりデバッグしたりすることは可能でしょうか?

すでに、私のトレーディングロボットで使用するためのヒントがいくつかあります。

1ティックでEAを起動することはできないので、ある範囲のティックの流れが必要です。

は、自然界に存在するのでしょうか?

週末にストリーミングクォートをエミュレートするmt4サーバー ?

 
pasha5282:

マーケットが開いているメッセージと閉じているメッセージを表示するスクリプトをアドバイスしてください。

つまり、monday 0.00.01でマーケットが開くというメッセージを出したら、「マーケットが開いている」というメッセージ、同様に「マーケットが閉じた」というメッセージを出すのです。

はスクリプトを書いたのですが、なぜかうまくいきません((解決するのを手伝ってください。


もしそれがスクリプトで、scpirts フォルダにあるのなら、一度動作した後、チャートから削除されていることになります。恒久的に維持するために、コードをこの


int start()
{
   while(!IsStopped())
   {
      // вот сюда

      Sleep(500);
   }
}