Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
そして、この変数の値によって、次に何をするかが決まります。例えば
double ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),digits); price=NormalizePrice(_Symbol,ask+Distance*_Point); t=OrderSend(_Symbol,OP_BUYSTOP,volume,price,Slippage,0,0,CommentOrder,Magic,0,clrBlue); if(t<0) { error=GetLastError(); rezult=StringConcatenate(_Symbol,": error open order ",DoubleToString(volume,2)," ",TypeToStr(type)," №- ",error," ",ErrorDescription(error)); Print(rezult); } else { tiket=t; rezult=StringConcatenate(_Symbol,": open order ",t," ",DoubleToString(volume,2)," ",TypeToStr(type)); Print(rezult); SendNotification(rezult); }
各行にコメントをつけると、もっと面白くなりますよ。
input bool MetaQuotes2 = true; // Описание входного параметра 2
input double MetaQuotes3 = 20.3; // Описание входного параметра 3
input string MetaQuotes4 = "Corp"; // Описание входного параметра 4
また、別の列挙型を作り、それをboolの 代わりに使えば、さらに面白いことになります。
{
enYes = 1, // Да
enNo = 0, // Нет
};
input int MetaQuotes1 = 30; // Описание входного параметра 1
input enumYN MetaQuotes2 = enYes; // Описание входного параметра 2
input double MetaQuotes3 = 20.3; // Описание входного параметра 3
input string MetaQuotes4 = "Corp"; // Описание входного параметра 4
とsinputで 、最適化の対象となる変数のリストから除外することができます。例えば、この文脈での変数MetaQuotes4は最適化のために必要ではないので、除外することができる。
{
enYes = 1, // Да
enNo = 0, // Нет
};
input int MetaQuotes1 = 30; // Описание входного параметра 1
input enumYN MetaQuotes2 = enYes; // Описание входного параметра 2
input double MetaQuotes3 = 20.3; // Описание входного параметра 3
sinput string MetaQuotes4 = "Corp"; // Описание входного параметра 4
これには何の問題もありません。ただ、最適化の際に、どのパラメータとステップから、どのステップへ、ということを明確にするためにテキストを追加する必要がありました。
何も問題はありません。必要なのは、どのパラメータとステップから最適化するのかを明確にするためのテキストを追加することだけでした。
なぜこれを課題として書くのか int tik=OrderSend
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
そして、この変数の値によって、次に何をするかが決まります。例えば
price=NormalizePrice(_Symbol,ask+Distance*_Point);
t=OrderSend(_Symbol,OP_BUYSTOP,volume,price,Slippage,0,0,CommentOrder,Magic,0,clrBlue);
if(t<0)
{
error=GetLastError();
rezult=StringConcatenate(_Symbol,": error open order ",DoubleToString(volume,2)," ",TypeToStr(type)," №- ",error," ",ErrorDescription(error));
Print(rezult);
}
else
{
tiket=t;
rezult=StringConcatenate(_Symbol,": open order ",t," ",DoubleToString(volume,2)," ",TypeToStr(type));
Print(rezult);
SendNotification(rezult);
}
....
とsinputで 、最適化する変数のリストから除外することができます。例えば、変数 MetaQuotes4 はこの文脈での最適化には必要ないため、除外することができます。
sinput string MetaQuotes4 = "Corp"; // Описание входного параметра 4
残念な例ですが、小文字のパラメータは最適化には一切関与しません。
成功・失敗で拾ったわけではありません。先ほど、上記のコードの例を示しました。手本は明確だった。それが私の狙いです。
全くその通りで、それも可能です。
絶対に正しい、それもできる
ここでは、その構造を紹介します。
doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)
質問:ENUM_TIMEFRAMESは どのようなタイプですか?
ここでは、その構造を紹介します。
doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)
質問:ENUM_TIMEFRAMESは どのようなタイプですか?