//+------------------------------------------------------------------+//| Возвращает пункты убытка закрытых ордеров с начала цикла |//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| Возвращает кол-во серии убыточных ордеров |//+------------------------------------------------------------------+
/********************Script program start function*******************/voidOnStart()
{
int a = 0;
f_0(a);
Print(a);
}/******************************************************************/void f_0(int& b)
{
b = 100;
}
分かっているのに話すのは良くない...。
は、「有益な情報をできるだけ多く出す」ためのアドバイスをしてください。
はっきり言ってしまいましたね。では、あなた個人についてお聞きします。
以下は2つの機能で、どちらも過去の注文を 通過するものです。
同じオーダーで2サイクル。これらの関数が返すすべてを1回のサイクルで得ることはできませんよね。
押忍
フクロウにトレードリバーサルを追加しようとしています。説明書に書いてある通りにやっていますhttps://www.mql5.com/ru/forum/128200
コンパイル時のエラーはないのですが、テスターでフリップが動作しません。
ログにエラーが表示される。
2021.07.29 20:06:34.316 2015.01.08 22:10:00 フリップスルーコード付きSMA AUDUSD,M5: OrderSend error 130
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA with reversal via AUDUSD,M5: OrderSend error 4107
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA with flip via AUDUSD,M5: invalid stoploss for OrderSend function.
何が問題なのか、教えていただけませんか?
で指定された変数が、その変数に対応したものであると、私自身は考えています。
int ReversOrderSend (string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit,string comment,int magic=0,datetime expiration=0,カラー arrow_color=CLR_NONE)メインコードに関連しないもの。
異なる端末、4サイン、5サインで試しました。
これがコードの全体像です。
もう、はっきり言ってしまいましたね。個人的な質問をさせていただきます。
以下は2つの関数で、どちらも過去の注文を 循環させます。
同じオーダーに2つのループがある。これらの関数が返すすべてを、1回のサイクルで得ることはできませんよね。
Alexei、私はすでに書きましたが、あなたが良いプログラマーであることは知っていますよ。
しかし、私はプログラマーではありませんし、あなたにとって「十分明確」なことが、私にとっては「あまり明確」ではないのです...。
2つのループについては、異なるタイプのデータを返すので、私にとっては「1つのループですべてを取得する」 ことは不可能です。
Alexey、私はすでに書きましたが、あなたが良いプログラマーであることは知っていますよ。
でも、私はプログラマーではないので、あなたにとっては「十分クリア」なことでも、私にとっては「暗い森」なんです...。
2つのループについては、異なるデータ型を返すので、私にとっては「1つのループですべてを取得する」 ことは不可能です。
返却されたタイプは関係ない。同じデータに対して、異なるチェックとフィルタで2つのループがある場合、常に1つのループにすべてを入れることができますが、コードはあまり明確に読めなくなりますが、動作は速くなります)デバッグの段階では、1つのループですべてを行うことはありません。違うものの方が、バグを見つけやすいのです。
Alexey、私はすでに書きましたが、あなたが良いプログラマーであることは知っていますよ。
でも、私はプログラマーではないので、あなたにとっては「十分クリア」なことでも、私にとっては「暗い森」なんです...。
2つのループについては、異なるタイプのデータを返すため、私にとっては「1つのループですべてを取得する」 ことは不可能です。
私は2つのバリエーションを持っています。
保留中の注文が競合しているのですが。
最初の結果です。 通貨ペア間の競合があり、EAは保留注文の 配置で競合しています。 例えば、私はEURUSDの保留注文を配置し、EAはアルゴリズムに従っています(1.18901で買い、オープンポジション、EAは1.18751でストップ、1.19051で利益を取り、1.18751で売り注文)すべては計画通りに大丈夫です。
しかし、今度は価格が異なるGBPUSDで取引を開始するときです。EAは、保留中の注文を設定することを除いて、すべて正しく動作しています。1.39393の売り注文がトリガーされ、EAはそれを開き、1.39633にストップを設定し、1.39153を取ろうとしたが、1.3963の買い注文はEURUSDで完全に重複し、1.18751の売り注文がある)
EURUSDのオープントレードで、1.18751にストップ、1.18901に売り保留、1.18595に取るとトリガーされたことです。Expert Advisorは、履歴にあるトリガーされたストップをテイクに追加していません。
これらが問題なのです。
押忍
フクロウにトレードのフリップを ねじ込むようにしています。
どういうことですか?ある一定の価格帯から購入/販売するのか?
こんにちは。EAに協力してください。ストラテジーによれば、ストップがトリガーされた場合、EAはIDで履歴から次の設定された持ち点に(ポイント数)
を追加するはずですが、なぜか実行されないのです。
コードのどこがおかしいのでしょうか?
MakarはOrderMagicNumber()を正しく指摘したが、エラーを誤解していた。この関数の構文はドキュメントを読んでください...注文リストのインデックスか、ある注文のチケットの どちらかになるはずですが、マジコンではありません。また、OrderTicket()はここでは役に立ちません。そこに置こうとしないでください。
どういうことですか?購入/売却する価格帯が決まっている?
このコードの作者は、私の理解では、次のような提案をしています。
フクロウがストップ&テイクで買い取引を開始した場合、彼のコードは同じ場所で 同時に売り取引を開始します(スプレッドを考慮して)買い取引の 代わりにストップ&テイクで。
このように、EAのエントリーポイント探しのロジックは変わらず、スプレッドが考慮された方向のみが変化します。
これこそ私が必要としているものだ
このEAに何を求めるか(運用のロジック)を端的に記述してください。
コードに不要なものが多いのか、何か理解できていないようです。
フクロウは、独自のアルゴリズムに従って取引を開始する必要があります。
ストップがかかれば、次の取引はマーチンで、というように、指定した倍率になるまで(関数 -OrdersClose = ......;)。
さらに、ターミナルと一緒にフクロウが無効になっている場合、別のフクロウで「自動取引」ボタンを押すだけで、次の取引はマーチンゲールによって増加した最後のロットではなく、開始ロットから開始されます。
また、スケジュールを付けられるといいのですが、このアイデアは今思いついたものです。
例えば、月曜日の10時からスタートロットで起動し、日中に何らかの結果が出たのでスイッチを切り、火曜日の朝10時に再び起動し、スタートロットでスタートさせるといった具合です。
すべてです。