どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 285

 
SpikeOne:

プログラミングのプロフェッショナルたちよ、こんにちは。

私は素晴らしいアイデアを持っている、そのようなExpert Advisorがありますhttps://www.mql5.com/ru/code/11030 それを夜間作業するアイデアをチェックし、テストしました。

モスクワの深夜にExpert Advisorを起動し、朝の3-4時になったら、あるテイクプロフィットで注文が終了するのを待ち、テイクプロフィットに達したら、それを無効にし、翌日の深夜にまた起動するというものです。

実装は可能でしょうか?もしそうなら、コードのどの場所に、時間(例えば午前3時)の条件のチェックと、テイクプロフィットが閉じているかどうかのチェックを挿入することが可能か教えてください。

その結果、Expert Advisorは利益を得て午前中に終了するはずです。

まず、「朝、利益がなかったらどうするか」を決めてください!(もちろん「利益あれば朝あり」であれば別ですが)・・・。:)))))))
 
TarasBY:
まず、「朝、利益がなかったらどうするか」を決めてください!(もちろん、「朝から利益があるとき」なら別ですが)・・・。:)))))

テストしたと言ったのは、とにかくそこに利益があることです。私の設定は標準ではありません。午前3時になったら、利食い 待ちをしてEAをオフにするようにします。
 
SpikeOne:

私はすでにテストしたことを書きました、とにかくそこに利益があるのです。私の設定は標準ではありません。そして、午前3時になると、テイクプロフィットを待ってExpert Advisorをシャットダウンするようにしなければなりません。

プログラミングの論理から言えば、これは無茶な話だ。

そのような結果になる可能性もあります。したがって、予見されなければならない。そうでなければ、例えば預金を失うような、不定な事態に陥るかもしれません。

 
Zhunko:

プログラミングの論理から言えば、これは無茶な話だ。

そのような結果になる可能性もあります。したがって、予見されなければならない。そうでなければ、例えば、預金がなくなるというような不定な事態が発生する可能性があります。


マーチンであれば、デポジットを失う可能性は常にあります。 これは不条理だと考えずにできるのでしょうか?少なくとも、注文が利益確定 で終了するコードのその場所を教えてください。
 
SpikeOne:

マーチンの場合、保証金を失う可能性が常にあります。せめてコードの中で、注文が利食いされる場所だけでも教えていただけませんか。

もちろん、できますよ!適切なプログラマーは、あらゆるケースを想定しています。

 

なぜMT4がロードできないのか、どなたか教えてください。エラーのスクリーンショットを提示する。


 
SpikeOne:

マーチンの保証金を失う可能性は常にあります、それは不合理であることを考慮せずに行うことは可能ですか?せめてコードの中で、テイクプロフィットで注文がクローズされる場所だけでも教えていただけないでしょうか。


マーチンでは、最初のロットのテイクプロフィットから期待される利益を得る確率が常に存在します。そして運が悪ければ、預け入れ金がなくなるか、許容ロットの上限を超えることになります。

そして、最初の賭けを取り返すために、これだけのリスクを冒す価値があるのだろうか?特にマーフィーの法則は廃止されたことがないので......。 そしてそれは不条理なことではなく、理論的なことではなく、現実的な生活なのです))

 
もし可能なら、テストをするのを手伝ってもらえると、私の初期データとテストでプログラムが動くことを証明できます。
 

今回もよろしくお願いします!)これまでのクロージングの問題は解決されましたが、新たな疑問が出てきました。質問の本質は、ゼロバーでの現在のインディケータの読み(特にMACD)と、1番目と2番目のバー(つまり以前のもの)での同じインディケータの読みをどのように比較するかということです。やり方がよく分からないので、教えていただけるとありがたいです)))

 
ElhoroS:

今回もよろしくお願いします!)これまでのクロージングの問題は解決されましたが、新たな疑問が出てきました。質問の本質は、ゼロバーでの現在のインディケータの読み(特にMACD)と、1番目と2番目のバー(つまり以前のもの)での同じインディケータの読みをどのように比較するかということです。やり方がよく分からないので、教えていただけるとありがたいです)))

   double macd_1=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,1); // макдак на первом баре
   double macd_2=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,2); // макдак на втором баре
ゼロバーでは、インジケーターデータは固定されません。ゼロバーがまだ形成されていないため、すべてのティックで、実際には、変更されます。したがって、最初のバーからデータを取得することになります。ゼロバーから取りたい場合は、PRICE_CLOSEをPRICE_OPENに変更します。これはゼロバーで変化しない唯一の価格ですが、インジケータはその標準表現からわずかに異なります - ほんの少し。