//Что-то типа такого (или свои идентификаторы). Написать функцию конвертирующую текст в идентификатор и обратно (при необходимости) достаточно просто.//Да и выглядит это более профессионально в конечном итоге.switch(type)
{
caseORDER_TYPE_BUY: {direction = type; price = SymbolInfoDouble(zSymbol,SYMBOL_ASK); break;}
caseORDER_TYPE_SELL: {direction = type; price = SymbolInfoDouble(zSymbol,SYMBOL_BID); break;}
default: {return(lot_value);}
}
switch(type)
{
case OP_BUY: {direction = ORDER_TYPE_BUY; price = SymbolInfoDouble(zSymbol,SYMBOL_ASK); break;}
case OP_SELL: {direction = RDER_TYPE_SELL; price = SymbolInfoDouble(zSymbol,SYMBOL_BID); break;}
default: {return(lot_value);}
}
//--- если это первый запуск вычислений нашего индикатора или изменилось количество значений в индикаторе iFractals//--- или если необходимо рассчитать индикатор для двух или более баров (значит что-то изменилось в истории)if(prev_calculated==0 || calculated!=bars_calculated || rates_total>prev_calculated+1)
{
説明:1目盛りごとにこれら2つの値が比較され、関数の最後に代入されます。
//--- запомним количество значений в индикаторе Fractals
bars_calculated=calculated;
Expert Advisorでファイルの読み込みにエラーが発生する。 10個の相違点を見つける。最初のコードはスクリプトを指し、2番目のコードはExpert Advisorを指し、これらは同じです。スクリプトでは動作しますが、Expert Advisor では動作しません。
10の違いを見つけるには、ファイルを開くコードを見る必要があります。(このオープンコードに、失敗した場合のエラーコードの出力を追加する)
次に、このファイルを使ってEAをテストしたい場合は、EAコードに #property tester_file "KitMaRsi.csv" という行を追加してください。
こんにちは。MQL4では、プログラム実行時にERR_HISTORY_WILL_UPDATED(4066)エラーが発生する場合があり、そのコードはGetLastError()関数で返されます。MQL5で同様のエラーはありますか?ここhttps://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes で検索してみましたが、同様のものは見つかりませんでした。
エラーについては、何も言いません。端末自体がデータの同期をとっているので、データを同期(読み込み)させたり、履歴が同期されているかどうかを確認したりすることができます。
データアクセスの構成はこちら(履歴読み込みスクリプトの例あり)。
必要と思われる関数:SeriesInfoInteger、SymbolIsSynchronized
文字変数を使った切り替えがうまくいかないようです...。
の代わりに。
'Type' - 不正なスイッチ式タイプ
買う」-定数式は積分ではない
テキストではなく、識別子を使用する。どちらがよりシンプルで論理的か...。
文字変数を使った切り替えがうまくいかないようです...。
その代わり
'type' - 不正なスイッチング式タイプ
買う」-定数式は積分ではない
こんな風に描かないといけないんだ。
あまりはっきりしないし、曲がっている。
他の言語でも問題なく使えます。
別の書き方をしたほうがいいのでしょうか?
こんなことをしました。
エラーについては、何も言いません。端末自体がデータの同期をとっているので、データを同期(読み込み)させたり、履歴が同期されているかどうかを確認したりすることができます。
データへのアクセスの仕組みはこちら(履歴読み込みスクリプトの例あり)。
必要と思われる関数:SeriesInfoInteger、SymbolIsSynchronized
MQL5のstdlib.mqh, WinUser32.mqh, stderror.mqhのようなライブラリのアナログはありますか?特に、PostMessageA関数に興味があります。
複数のエージェントで最適化を行う場合、結果は処理された順番に、つまり交互にチャート上に表示されます。MT4のように、パラメータの選択に応じて結果を表示する順番を決めることは可能ですか?つまり、後から来た結果が正しい順番で挿入されることになる。最適化の際に傾向や規則性を追うのは不便で、計算が終わってから結果を分析すればいいということです。
++:完全なブルートフォースによる最適化であり、当然ながら遺伝子の上では意味を成しません。
ハンドブックでの説明
実際
bool ObjectCreate()
long chart_id, //チャート識別子
string name, // オブジェクト名
ENUM_OBJECT type, // オブジェクトタイプ
intn win, // ウィンドウインデックス);
M1の ヘルプにあるiFractalsの サンプルコードを実行してみましょう。このコードでは、OnCalculate() 関数の呼び出しの2番目の形式(完全な形式)を使用しています。しかし、その前にこの関数の内部で次のように修正します。
まで
を1行で出力して見失わないようにするため(そのままにしておくと、他の値は稀ですぐに1に置き換わるので、視覚的には常に1が表示されるようです)。実行後、非単位値が毎分、つまり新しいバーごとに発生していることがわかります。これは、インジケータが毎分再描画されていることを明確に示しています。余すところなく を使用しているにもかかわらず、このコードでは経済的アルゴリズム.疑う人は、数行のコードを追加して、例えば各フラクタルに縦線を描き、最初の描画の後にそれを削除して、1分後に新しいバーで同じ線のフルセットが現れるのを待てばよい。最後のフラクタルやラインだけを仕上げるというものは、なぜか論外なのです。
はい、確かに、iFractals() 関数での例のインジケータは、組み込みインジケータからの値でそのインジケータバッファをリフレッシュ します。行の2番目の条件(黄色でハイライトされている)が「責められるべきこと」である。
説明:1目盛りごとにこれら2つの値が比較され、関数の最後に代入されます。
//--- запомним количество значений в индикаторе Fractals bars_calculated=calculated;
そして、その差は精神的なものにも生じます。
この場合、2つの事象の分離は行われていない、ということがわかりましたね。このような質問がないように、この例を修正するかどうかは、まだ何とも言えません。