Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
こんにちは。
EAを書く のに協力してください。
Expert Advisorの本質:1ロットの注文を4つ開く。
売り2:USドルchf、ユーロスド。
2を購入する。gbpusd; usdjpy;
合計で5pipsの利益が出たら、すべての取引を終了します。そしてまた始める。
全部で4区画?
利益が出ない場合はどうするのですか?
こんにちは。
EAを書く のに協力してください。
Expert Advisorの本質:1ロットの注文を4つ開く。
売り2:USドルchf、ユーロスド。
2を購入する。gbpusd; usdjpy;
合計5pipsの利益が出たら、すべての取引を終了します。そして、新たなスタートを切る。
質問を別のスレッドに重複させる必要はありません。
フリーランスに お問い合わせください。
ごあいさつ
現在のチャートで新しいローソク 足が始まったらアクションが実行されるように条件を書く方法を教えてください。
こんにちは!配列の理解を助けてください
MASDインジケータで配列を埋める 必要があります。私の理解では、データ:バーインデックス、MODE_MAIN 値、MODE_SIGNAL値、つまり配列は3次元型(a [] [] )であるべき、なんでしょ うか。例を挙げるとすれば。
https://www.mql5.com/ru/articles/159
セルゲイさん、このコードを自分で使ったことがあるんですか?
記事は概ね良いのですが、それは
非常に危険です。それを実現するためには、ドラマーが推奨するように、定期的にヒストリーを「ジャーク」する必要があります。どことは言いませんでしたが。
一般的には、悩んだ末に、CopyRates()関数を使った方が良いという結論に達しました。
エラーになりそうなメッセージは、各自が希望すれば記入します。
{
static datetime timeLastBar;
MqlRates mqlRates[];
int s = 0;
do
{
s++;
}
while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 0 && s < 7);
bool ret = timeLastBar != mqlRates[0].time;
if(ret)
timeLastBar = mqlRates[0].time;
return(ret);
}/*******************************************************************/
セルゲイさん、このコードを自分で使ったことがあるんですか?
記事は概ね良いのですが、それは
非常に危険です。それを実現するためには、ドラマーが推奨するように、定期的にヒストリーを「ジャーク」する必要があります。どの場所かは特定されていない。
アレクセイ、いつエラーに遭遇したのか教えてください。食べたことはありますか?
ただ、私自身はこの方法を使っていますが、トラブルに巻き込まれたことはありません。まあ、まだ必要なのかも?
解説が欲しいところですが...。:)
ドラマーはどこでそんなことを言ったんだ?
アレクセイ、教えてくれ、この使い方でエラーになったことがあるのか?したことがありますか?
なぜなら、私自身がこの方法を使っていて、まだトラブルに遭遇したことがないからです。まあ、まだ必要かもしれませんね。
解説が欲しいところですが...。:)
drubashkaはどこでそのようなことを言ったのでしょうか?
https://www.mql5.com/ru/forum/89213
8ページにも及ぶ口喧嘩がある。また、ドゥルバシカだけでなく、スラワは次のように言っています。
この機能の動作が不十分な箇所はどこでしょうか?ドキュメントを よくお読みになりましたか?
履歴データの状態に関する 情報を返す。情報を更新しない、データスワップを開始しない。今あるものを返すだけ。
アレクセイ、教えてくれ、この使い方でエラーになったことがあるのか?したことがありますか?
私自身もこの方法をとっていますが、まだトラブルには遭遇していません。まあ、まだ必要かもしれませんね。
解説が欲しいところですが...。:)
ドラマーはどこでそんなことを言ったんだ?
そして、ここからがヒネリどころ。
それは1つのターミナル(M15タイムフレーム上)の1つのシンボルで動作しませんでした - 私は問題は別のタイムフレームを使用して、私はすべての時間を "ジャーク "する必要があることであると99%確信しています履歴。 CopyTime()でやったほうがいいと思う。
アレクセイ、教えてくれ、この使い方でエラーになったことがあるのか?したことがありますか?
例えば、MT5ターミナルにはいくつかのExpert Advisor(MACDサンプルや移動平均)がありますが、それらのコードに「_Period」ではなく、例えば「PERIOD_H4」など特定のTFを入れようとすると、上位TFの建値でのテストでは、以下のインディケータ読み込み エラーが発生します: cannot load indicator 'MACD' [4805] and as result: tester stopped because onInit failed.ご意見をお聞かせください。もしかして、私のやり方が悪いのか?Expert Advisor をコード化し、任意の TF の始値でテストすることは可能ですか?
インジケーターをカスタムで使おうとしたのですが、エラーは同じです。
ご感想をお寄せいただき、ありがとうございました。
int OnInit(void)
{
//--- ヘッジモードが有効な場合、ポジションを制御するためのトレードクラスを用意する。
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) とする。
ExtTrade.SetExpertMagicNumber(MA_MAGIC)を実行。
ExtTrade.SetMarginMode()。
//--- 移動平均インジケータ
ExtHandle=iMA(_Symbol,PERIOD_H4,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
if(ExtHandle==INVALID_HANDLE)
{
printf("Error creating MA indicator");
return(INIT_FAILED);
}
//--- OK
return(INIT_SUCCEED);
}