MQL4プログラミングに関するオンラインブックのベータ版 - Sergey Kovalev (SK.)著 - ページ 7

 

また、本文中では、なぜ括弧のない関数を使用しているのかも気になるところです。OrderType() OrderOpenPrice()

 
Climber:
// Критерии закрытия ордеров

if
(_OrdersTotal == 1) //Выполнять следующее если открыт 1 ордер
{
OrderSelect(0, SELECT_BY_POS);
Tip = OrderType;
OPrice = OrderOpenPrice;

if (Tip = 0) // Расчитать цену закрытия в зависимости от типа ордера (В=0,S=1)
{
Cprice = OPrice + (TakeProfit*Point) + Spread;
if (Bid >= Cprice)
{
Cls_B = True;
}
}
if (Tip = 1)                 
{
Cprice = OPrice - (TakeProfit*Point) - Spread;
if (Ask <= Cprice)
{
Cls_S = True;
}
}
あなたのコードでは、間違っているのは括弧の欠如ではなく、他のエラー、例えば、条件(赤でマークされた)の別の等号が欠落していることです。
 
役に立たなかった==。それでも同じ括弧がエラーで書かれている。テイクプロフィットが設定されている場合、終値の基準はコードに書けないのでしょうか?あるいは、例えば、価格が突然TPに近づき、1ティックで突然数ポイント変化し、TPを飛び越えた場合、機能しないことがあるのでしょうか?
 
Climber:
それとも、例えば、価格が突然TPに近づき、1ティックで数ピップス急に変化し、TPを飛び越えた場合、失敗する可能性があるのでしょうか?


これは理論的には可能です。つまり、注文はまだ閉じられますが、TP価格ではなく、最初に表示された価格で閉じられる可能性があります。
MQL4チュートリアル - 取引操作 - 注文パラメータと取引操作 ルール」をお読みいただくと、ご興味があるかと思います。同様の例でスリッページを扱ったものです。

 
また、プログラミングを学ぶ段階でのもう一つのオリジナル機能として、コンマを入れるために、英語のレイアウトではコンマがあるところ、ずっとbという文字を押しています)))。ロシア語で書いているのに、カンマをつけるとロシア語のレイアウトを忘れてしまうことが判明しました。
 
Climber:
また、プログラミングを学ぶ段階でのもう一つのオリジナル機能として、コンマを入れるために、英語のレイアウトではコンマがあるところ、ずっとbという文字を押しています)))。ロシア語で書いているのに、カンマをつけるとロシア語のレイアウトを忘れてしまうことが判明しました。

だから、多くの人がロシア語を使わずに英語でソフトを書くんです。その方が早いし簡単だし、レイアウトもそうそう変わらないし、それからプログラムは誰かのためにロシア語に直して、コメントが必要なら、この時期の作業だけ、なぜかロシア語化するのが一番便利なんです:)英語レイアウトはそのような文章を書く人の基本であり、ロシア語はごくわずかしか使わず、英語レイアウトの使用率を試算すると99%になるそうです。以前はロシア語でプログラムを書きたいと思っていたのですが、1Cを楽しんでいるうちに、その思いが薄れてしまいました。
 
Rosh:
問題が見つかれば、それを解決する。

https://book.mql4.com/ru/metaeditor/compose で図面を見ることができるようになりました。
 

どうやって私のメッセージを消したんだろう フェアな議論じゃないな みんな 言うことがないならそう言ってくれ わかったよ

 

私が手紙を書いた相手が読んで反応してくれたことを願うばかりです。

 
フォーラムで必要な機能を見つけた。1つはZigZagの極値をその小節番号で返し、もう1つはZigZagの極値をその小節番号で返します。最初のものは、ZigZagの新しい極限が出現したかどうか(ZigZagゼロのバー番号=0の場合)を判断し、そこから他の基準のチェックに進むことができます。2枚目も使えそうです。しかし、2回目はまだ早い。1を扱いたいと思います。

この機能をエディタに実装し、インジケータを作成 しました。何も足したり引いたりしませんでした。 しかし、コンパイル中に多くのエラーが発生しました。ひどいもんだ。そこで、この機能だけを使ってExpert Advisorを作成してみました。同じ結果になりました((
//+----------------------------------------------------------------------------+
//|  Возвращает номер бара экстремума ЗигЗага по его номеру.                   |
//|  Параметры:                                                                |
//|    sym - наименование инструмента  ("" - текущий символ)                   |
//|    tf  - таймфрейм                 ( 0 - текущий ТФ)                       |
//|    ne  - номер экстремума          ( 0 - текущий)                          |
//|    dp  - ExtDepth                                                          |
//|    dv  - ExtDeviation                                                      |
//|    bc  - ExtBackstep                                                       |
//+----------------------------------------------------------------------------+
int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
  if (sym=="") sym=Symbol();
  double zz;
  int    i, k=iBars(sym, tf), ke=0;
 
  for (i=1; i<k; i++) {
    zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(i);
    }
  }
  Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}
ここで何が問題なのか?なぜ、エラーと騒ぐのか?