MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1805

 
64ビットOSのシステムにインストールするために、32 mt4をダウンロードすることはできますか?
 
Seric29 #:
64ビットOSのシステムにインストールするために、32 mt4をダウンロードすることはできますか?
 
Seric29 #:
64bitOSにインストールするために、32bitのmt4をダウンロードすることは可能ですか?
MT4 x64は存在しませんが、x32のアプリケーションはx64のOSにインストール可能です。
 
Mihail Matkovskij #:

今頃気がつきました。

インデックス 1.

インデックスが0のMAがあるのに対して!つまり、バー全体を歩き回り、OpenとCloseを超えることができるのです。したがって、MAを1倍して指数化するのがよい。

そして、すべてのシグナルは形成されたバー上で例外的に取得され、ロボットは建値でのシグナルで取引システムと完全に一致することになるのです。したがって、ロボットはバーの開きを追跡し(私はすでにこのコードを追加しました)、新しく形成されたバーでエントリーするだけでよいのです。より信頼性の高いものになります。マカーのように、間違った入力アルゴリズムのために試行錯誤をする必要はないでしょう。

ありがとうございます。それを承知で「1」で履歴のTSを実行してみます。

 
MakarFX #:
Artem、このストラテジーでは、TPまたはSLで閉じるまで1つの注文をマーケットに出しています。

皆さん!ありがとうございます!でも私の質問がこんなに「論争」を巻き起こすとは思いませんでした))

私は、AK-47のようにシンプルなEAを支持しています。

信号 - 入力

ストップ/ストップ/ストップアウト

を一括して取引する。

私は他の人のコードを使い、自分のコードを追加しています(あなたの助けを得て)。そして、「機能してシンプルに見える」ので、必要なとき以外は何も変更するつもりはないのです。

今、私は新たな疑問を抱いています。

エントリーポイントをnバー分乖離させるには?

bool bSignalBuy()
  {
   if(dMA > Open[1] && dMA < Close[1])
     if (TimeCurrent()> iTime(NULL,0,5)) 
      return(true);

   return(false);
  }
//+-----------------------------------------------------------------------------------------------+
//|                                                             Функция поиска сигнала на продажу |
//+-----------------------------------------------------------------------------------------------+
bool bSignalSell()
  {
   if(dMA < Open[1] && dMA > Close[1])
     if (TimeCurrent()> iTime(NULL,0,5))
      return(true);

   return(false);
  }

つまり、もしもを想定しています。

TimeCurrent - 最後の引用の到着時刻 >iTime - ここで "5"現在のバーから指定されたバー数だけ戻って相対的に シフトし、その後、信号がなくなって います。

まだ動作していないので、どこかで何かが間違っている。

 
законопослушный гражданин #:

どこかで間違ったことをしたのか、まだ動いていない。

は、すべて間違っていた。

を考えてみてください - この状態になります。

if (TimeCurrent()> iTime(NULL,0,5))

false を返したことがありますか?

に関しては、バー1からバーiBars(NULL,0)までのループでシグナルを探し、シグナルを見つけた場合、クロスを見つけたバー番号を返すか? などです。

信号が見つからなければ -1 か INT_MAX ... を返します。クロスオーバーがなかった場合、どのように対処するかによる。

 
Igor Makanu #:

は、すべて間違っていた。

を考えてみてください - この状態になります。

false を返したことがありますか?

課題としては、バー1からバーiBars(NULL,0)までのループでシグナルを探し、シグナルが見つかったらクロスを見つけたバーの番号を返すか? などです。

信号が見つからなければ -1 か INT_MAX ... を返します。クロスオーバーがなかった場合、どのように対処するかによる。

時間ではなく、バーの本数に「縛られたい」ということですか?

 
законопослушный гражданин #:

大切なのは時間ではなく、小節の数なのですね。

まあほとんど......。もう一度:各バー上の信号でループを実行する....いいかい?

for(int i=1;i<Bars;i++)
{
if(dMA < Open[i] && dMA > Close[i]) return(i);
}
return(INT_MAX);
 
Igor Makanu #:

まあほとんど......。もう一度:各バーでシグナルを実行する...。を手に入れましたか?

なぜ、すべてのバーを「循環」させる必要があるのでしょうか?

始値と終値で表現されたバーがありますね。次のバーで注文を出すためのシグナルを出します。

シグナルバー」を価格ではなく時間で表現すれば、単純に必要な時間を足して、ポジションの開始時間を「ずらす」ことができるのではと思い込んでいたのです。

 
законопослушный гражданин #:

説明を受けても、なぜすべてのバーを「通過」させなければならないのか、本当に理解できません。

始値と終値で表現されたバーがありますね。次のバーで注文を出すためのシグナルを出します。

シグナルバー」を価格ではなく時間で表現すれば、そこに必要な時間を足して、ポジションの開始時間を「移動」させるだけでいいと思い込んでいました。

決めなければならないのは、「質問をどう組み立てるか」ということです。

law-abiding citizen#:

エントリーポイントをn-barsで退避させるには?

ここで、最後の信号があったバーを探します - バー#5にハードチェック信号を設定するには - 最高のオプションではありません、イミホ - ループで見て、あなたがしたい場合は、すべてのバーではなく、例えば1〜Nにサイクルを実行します。

ところで:バー、ところで、普遍的なソリューションです - 今、あなたは15分で注文を開くために1 TFにしたい、その後、2時間後に高いTFでそれを必要とすることを決定 - 最後の信号があったバーを知って、あなたはすぐにこのバーの時間を得ることができます。