You have just registered and most likely you have questions such as, "How do I insert a picture to my a message?" "How do I format my MQL5 source code?" "Where are my personal messages kept?" You may have many other questions. In this article, we have prepared some hands-on tips that will help you get accustomed in MQL5.community and take full advantage of its available features.
Predefined Macro Substitutions - Named Constants - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
ありがとう。
'SYMBOL_VOLUME_LIMIT' - 宣言されていない識別子...............
'SymbolInfoDouble' - どのオーバーロードも関数呼び出しに適用できない。
私だけ?
'SYMBOL_VOLUME_LIMIT' - 宣言されていない識別子...............
'SymbolInfoDouble' - どのオーバーロードも関数呼び出しに適用できない。
私だけ?
できるか?
SeriesInfoInteger() 関数についてもう1つ質問があります。
トピック「AccountInfo...」を作成する際に、「 情報の関連性」について学びました。情報関連"というトピックを作成する際に、"ソフトウェア環境にキャッシュされた "データを使用する関数と、常に "実際のデータに直接アクセスできる "関数があることを知りました。
SeriesInfoInteger() 関数はどちらに属するのでしょうか?
次のコードはCheckVolumeValue 関数で使われている:
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
しかし、この方が正しい:
int ratio = (int)MathRound((volume-min_volume)/volume_step);
if (MathAbs(ratio*volume_step+min_volume-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step+min_volume);
return(false);
}
なぜなら、体積変化の最小ステップは、最小値からカウントされなければならないからである。
そして、おそらくコードスニペット
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
に置き換えるべきだろう:
//--- вычислим значение маржи
double price = (type == ORDER_TYPE_BUY || type == ORDER_TYPE_BUY_LIMIT || type == ORDER_TYPE_BUY_STOP || type == ORDER_TYPE_BUY_STOP_LIMIT) ? last_tick.ask : last_tick.bid;
bool check=OrderCalcMargin(type,Symbol(),lots,price,margin);
MQL5の変更により、1つのシンボルに許容される全体の最大ボリュームは以下のように求めることができる:
旧バリアントは使用しないでください! 旧バリアントは使用しないでください!
この記事は修正され、新しいCheck_Order_And_Volume_Limits.mq5 エキスパート・コードが添付されています。管理者様
この関数を 使用しようとしましたが、すべてのケースで0を返します。
私のMT5のビルドは2280です。
double orders_volume_on_symbol=PendingsVolume(symbol);そのような関数は ありません。
そして、保留中の注文を含まないように関数を修正すると、0が表示されました。
max_volumeが0でopen_volumeが0だからです;
未決済のポジションがないのに、なぜ最大出来高が0になるのですか?
ビルド 2715