コーディングの方法は? - ページ 108

 

コマンドラインからMetaTraderのスクリプトを実行する

買い注文を実行するスクリプトまたはプログラムをコマンドラインから実行できるようにしたいのですが、どうすればよいですか? ルールはありません。 コマンドラインからそれを入力すると、1 EURUSD Longポジションを買うはずです。

これはどのように行うことができますか?

ありがとうございます。

パコ

 

シンプルな矢印ベースのインジケーターとEA

みなさん、こんにちは。

最近、矢印ベースのインジケータで動作する簡単なEAを作ろうとしています。そのEAは、常に1つの注文を維持するように作ろうとしています。矢印が下を向いたら、前の買い注文が閉じられ、売り注文が開かれます。矢印が上を向いたら、前の売り注文が閉じられ、買い注文が開かれます。テスター(可視化モード)を使って、自分のコードを検証しています。どう頑張っても、矢印が上向き、下向きの時にEAがポジションを閉じたり開いたりすることはないようです。バックテストでは、EAが正しく動作していないことが確認されました。インジケータが示す矢印の位置で注文を閉じたり開いたりするのではなく、EAはどこか別の時間に注文を閉じたり開いたりしています。なぜ私のコードが動作しないのか理解できません。

スタートステートメントの最初に、次のようなコードを書いています。

if (Time[0] == savedTime) { (タイム[0] == セーブタイム)

return (0);

} else {

savedTime = Time [0];

}

これにより、新しいバーが形成されたときにのみ、start文のコードが実行されることを保証します(期待)。startサブルーチンの本文の後半で、iCustom関数を使ってインジケータにクエリを発行しています。リクエストは以下のような感じです。

iCustom (... 1)

最後の引数oneは、前に形成されたバーを指定するため、0ではありません。しかし、その後、私はOrderCloseで開いた注文を閉じ、OrderSendで新しい注文を開きました。両方の関数が瞬時に実行される必要があるのでしょう。

要するに 私は矢印のインジケータに基づいてEAを作成しようとしています。このインジケータは上か下を指しています。私の考えでは(おそらく間違っていますが)、私が行う必要がある唯一のことは、前の注文を閉じ、次のバーが形成されたときに新しい注文を開くことです。この問題について何かご意見をいただければ幸いです。

ありがとうございました。

 

どなたか、インジケータに有効期限を 入れるコードの書き方を教えてください。

ありがとうございます。

 

このスレッドを見てくださいhttps://www.mql5.com/en/forum/174194

 
newdigital:
このスレッドを見てくださいhttps://www.mql5.com/en/forum/174194

そのリンクをありがとうございます。やっと私が探しているページを見つけました。 こちら

 

1つのウィンドウに2つのインジケータを表示させるには?

誰か、1つの別々のウィンドウに2つの指標を取得する方法について私の心をリフレッシュすることができますので、彼らはお互いに重なり合うのですか?

事前にあなたの援助に感謝します。

デイブ

 

注文を開くだけのEAが必要

こんにちは。

GMT 00:00AMに4種類の注文を出すEAを作りたいのですが、どなたか教えていただけませんか?

1ロット買い

1ロット買い

1ロット売り

1ロット売り

00:00GMTにすべてオープンすること

ありがとうございました。

ライアン56

 
bdht:
こんにちは、皆さん。

最近、矢印系のインジケータで動作する簡単なEAを作ろうとしていました。そのEAは、常に1つの注文を維持するようにしようとしています。矢印が下を向いたら、前の買い注文が閉じられ、売り注文が開かれる。矢印が上を向いたら、前の売り注文が閉じられ、買い注文が開かれます。テスター(可視化モード)を使って、自分のコードを検証しています。どう頑張っても、矢印が上向き、下向きの時にEAがポジションを閉じたり開いたりすることはないようです。バックテストでは、EAが正しく動作していないことが確認されました。インジケータが示す矢印の位置で注文を閉じたり開いたりするのではなく、EAはどこか別の時間に注文を閉じたり開いたりしています。なぜ私のコードが動作しないのか理解できません。

スタートステートメントの最初に、次のようなコードを書いています。

if (Time[0] == savedTime) { (タイム[0] == セーブタイム)

return (0);

} else {

savedTime = Time [0];

}

これにより、新しいバーが形成されたときにのみ、start文のコードが実行されることを保証します(期待)。startサブルーチンの本文の後半で、iCustom関数を使ってインジケータにクエリを発行しています。リクエストは以下のような感じです。

iCustom (... 1)

最後の引数oneは、前に形成されたバーを指定するため、0ではありません。しかし、その後、私はOrderCloseで開いた注文を閉じ、OrderSendで新しい注文を開きました。両方の関数が瞬時に実行される必要があるのでしょう。

要するに私は矢印のインジケータに基づいてEAを作成しようとしています。このインジケータは上か下を指しています。私の考えでは(おそらく間違っていますが)、私が行う必要がある唯一のことは、前の注文を閉じ、次のバーが形成されたときに新しい注文を開くことです。この問題に対するご意見をお聞かせいただければ幸いです。

すべての人に感謝します。

もし、1つのバーに1回だけシグナルを見て、シグナルが変化したときに「システム」がクローズしてリバースするのであれば、エントリーのチェックの前に出口のチェックをすることが重要 です。そうしないと、新しいエントリーシグナルがあっても、前のシグナルがまだ開いているので、EAが取引に入ることができないからです。そして、EAがポジションをクローズするときは、次のバーでエントリーすることになります。

私の英語力ではありますが、ご理解いただけると幸いです。

FerruFx

 
Dave137:
どなたか、2つのインジケータを1つの別々のウィンドウに表示し、互いに重なり合うようにする方法について、私の心をリフレッシュすることができますか?

ご協力ありがとうございました。

デイブ

このページを見てください: https://www.mql5.com/en/forum/172923

 

さて、これはあなたの新しいバーの問題を解決します(mql4.comの記事から入手)。

bool funcIsNewBar()

{

bool res=false;

// the array contains open time of the current (zero) bar

// for 7 (seven) timeframes

static datetime _sTime[7];

int i=6;

int timeFrame = Period();

switch (timeFrame)

{

case 1 : i=0; break;

case 5 : i=2; break;

case 15 : i=3; break;

case 30 : i=4; break;

case 60 : i=5; break;

case 240: i=6; break;

case 1440:break;

default: timeFrame = 1440;

}

//----

if (_sTime==0 || _sTime!=iTime(Symbol(),timeFrame,0))

{

_sTime = iTime(Symbol(),timeFrame,0);

res=true;

}

//----

return(res);

}[/CODE]

Call this function like this

int start()

{

if (funcIsNewBar)

{

//run some code

}

return (0);

}

That'll get code to run ONLY when there is a new bar.

What you need to do is find out in the data window of MT4 what the values are when there is NO arrow being put on the chart by your indicator. For example, the indicator may may have 0's or may be blank.

So all you do then is call the value of the indicator at each open [CODE]varMyIndieValue=iCustom();

if (varMyIndieValue>0) //there's an arrow

{

//run some code

}
bdht:
こんにちは、皆さん。

最近、私は矢印ベースのインジケータで動作する簡単なEAを作ろうとしていました。そのEAは、常に1つの注文を維持するようにしようとしている。矢印が下を向いたら、前の買い注文が閉じられ、売り注文が開かれます。矢印が上を向いたら、前の売り注文が閉じられ、買い注文が開かれます。テスター(可視化モード)を使って、自分のコードを検証しています。どう頑張っても、矢印が上向き、下向きの時にEAがポジションを閉じたり開いたりすることはないようです。バックテストでは、EAが正しく動作していないことが確認されました。インジケータが示す矢印の位置で注文を閉じたり開いたりするのではなく、EAはどこか別の時間に注文を閉じたり開いたりしています。なぜ私のコードが動作しないのか理解できません。

スタートステートメントの最初に、次のようなコードを書いています。

if (Time[0] == savedTime) { (タイム[0] == セーブタイム)

return (0);

} else {

savedTime = Time [0];

}

これにより、新しいバーが形成されたときにのみ、start文のコードが実行されることを保証します(期待)。startサブルーチンの本文の後半で、iCustom関数を使ってインジケータにクエリを発行しています。リクエストは以下のような感じです。

iCustom (... 1)

最後の引数oneは、前に形成されたバーを指定するため、0ではありません。しかし、その後、私はOrderCloseで開いた注文を閉じ、OrderSendで新しい注文を開きました。両方の関数が瞬時に実行される必要があるのでしょう。

要するに私は矢印のインジケータに基づいてEAを作成しようとしています。このインジケータは上か下を指しています。私の考えでは(おそらく間違っていますが)、私が行う必要がある唯一のことは、前の注文を閉じ、次のバーが形成されたときに新しい注文を開くことです。この問題に対するご意見をお聞かせください。

すべての人に感謝します。