MQL5で学び、共に書く - ページ 31

 
Urain:

プーシキンが文字列を初期化するのか?

うーん、プログラミングは苦手なのですが、文字列は毎回リセットされないのでしょうか?

例えば、doubleは0、boolは1というように、その基本的な値に興味があるのですが、どうでしょう?

ダブりの例。

ダブルスタティーズ

void OnTick()
{
if(Statys == 0)
{OpenBuy();}。

}

そして、うまくいっているようです))


(その通り、ゼロにはならない))そこで初期化したことはありません)。


 
AUser:

うーん、プログラミングは苦手なんですが、文字列は毎回リセットされないんでしょうか?

例えばdoubleは0、boolは1というように、その基本値に興味があるのですが、それは何でしょうか?


その通り、ゼロになってない)そして、そこで初期化したことはない)

MQL5のヘルプでは、「変数の初期化」の項に明記されています。

どのような変数も定義時に初期化することができる。変数が明示的に初期化されていない場合、この変数に格納される値は何でもよい。 暗黙の初期化は行われない。

しばらくの間は幸運なだけですが、いつか不運に見舞われ、悪魔が細部に潜んでいることに気づかず、コードのエラーを見つけるのにひどく長い時間がかかることになるでしょう。運が良くなる』ということに頼らなくていいんです。
 
Rosh:

MQL5ヘルプの「変数の初期化」の項には、明確にこう書かれています。

当面は運が良いだけですが、ある日突然運が悪くなり、些細なことに悪魔が潜んでいるとも知らずに、コードのバグを探すのに悶々とした時間を過ごすことになります。運が良ければ」ということに頼らなくてもいいんです。
はい、ありがとうございます))ちゃんとしますから)))
 

配列のインデックスの向きをチェックする簡単な関数を書いています。配列自体はOnCalculate()から取得したもので、つまり異なる型(double、datetimeなど)を持っています。リファレンスには、異なる型の配列を処理する際にヘッダー型 f(void &array[]) を使用する端末関数の例があります。しかし、コンパイラは、ユーザー関数でvoid型を 使うことに悪態をついています。ユーザー関数において,配列パラメータの型が重要でないことをコンパイラに伝える普遍的な方法はありますか?

 

取引依頼結果(MqlTradeResult)の構造について教えて ください。

double price; // ブローカーによって確認された取引中の価格

保留中の注文の価格を返さないのですが?Expert Advisorは次のようなコードを書いています。

double Statys = 0;
void OnTick()
{
if (Statys == 0)
{OpenBuy();}
}

。void OpenBuy()
{
MqlTradeRequest o; MqlTradeResult p;
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);

o.action = TRADE_ACTION_PENDING;
o.symbol = _Symbol;
o.volume = 1;
o.price = 82,000;
o.sl = 81,800;
o.tp = 82.200;
o.type = ORDER_TYPE_BUY_STOP;
o.type_filling = ORDER_FILLING_AON;
o.type_time = ORDER_TIME_GTC;
OrderSend(o,p);
スタティス=p.価格;
}.


オープントレードが多いことから判断して、あえて答えは「価格=0」だと思うんです。でも、ちょっと変な感じですね。


Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Yedelkin:

ユーザー関数において、配列パラメータの型は重要でないことをコンパイラに伝える普遍的な方法はありますか?

配列内の異なるデータ型に対してオーバーロード関数を 実行する。
Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - Документация по MQL5
 
AUser:

取引依頼結果(MqlTradeResult)の構造について教えて ください。

double price; // ブローカーによって確認された取引中の価格

保留中の注文の価格を返さないのですが?Expert Advisorはそのようなコードを書きました。


未決済の取引が多いことから判断して、あえて答えは「価格=0」だと思います。でも、これってちょっと変ですよね。


保留は、取引の成立を意味するものではありません。MqlTradeResultの 構造に関するヘルプをご覧ください。

フィールドの説明

フィールド

商品説明

リトラクタブルコード

トレードサーバーのリターンコード

引合

ディールチケット、ディールが実行された場合。TRADE_ACTION_DEALの 取引操作で報告されます。

言いつけ

オーダー チケット、チケットが発注されている場合。TRADE_ACTION_PENDINGの 取引操作中に通知される。

ボリューム

ブローカーが確認した取引量。オーダーフィリングの種類 によって異なります

価格

取引価格、ブローカーに確認。 取引依頼 書の乖離項目 及び取引 種別による

入札

現在の市場入札価格(再入札価格)

訊く

現在の市場入札価格(再入札価格)

コメント

トランザクションに対するブローカーのコメント(デフォルトでは復号化で埋まっています。)

また、コードを 正しく挿入してください。
 
OK、ストップ。文字列も初期化する必要があるのでしょうか?アトミックタイプではありません。
 
Rosh:

未決済注文は、取引に該当しません。MqlTradeResult 構造体のヘルプをご覧ください。

また、コードを 正しく挿入してください。
了解)
 
TheXpert:
OK、ストップ。文字列も初期化する必要があるのでしょうか?アトミックタイプではありません。
デフォルトの初期化には依存しないほうがよい。決して