基本的な質問 ... - ページ 2

 

私は自分自身を説明しようとします。

3つの異なるシステムを持っているとします。

システム1はEUR/USDの1Mチャートで最もよく機能する。

システム2はEUR/USD 5Mのチャートで最もよく機能する。

システム3はEUR/USD 1H チャートで最もよく機能する。

今、私はエキスパートアドバイザーがチャートごとに 1つのポジションをオープンし、それ以上オープンしないようにしたい。言い換えれば、私はシステム1にのみ1ポジション、システム2に1ポジション、システム3に1ポジションを開きたいのです。

前回はシンボルごとに1ポジションとしましたが、今回はチャートタイプごとに1ポジションとしたいのですが。

 

.つまり、システム1のみに1ポジション、システム2にも1ポジション、システム3にも1ポジションを開けたいのです。

OK

では、MAGIC Number per systemで動作するようにします。

#property copyright "system 1"

#property link ""

#define MAGIC 01901

.

.

.

if ( ExistPosition() == False) {

OrderSend(Symbol(),op,Lots,pp,SLIPPAGE,ldStop,ldTake,lsComm,MAGIC,0,clOpen); // MAGIC = system 1

}

// if open 1 position only for system 1 MAGIC ?

bool ExistPosition() {

bool Exist=False;

for (int i=0; i<OrdersTotal(); i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) Exist=True;

}

}

return(Exist);

}

を投稿できますか?

 

10x!

具体的なシステムがあるわけではありません。あくまで一例です。

私はmetaTraderの初心者で、これは私が持っていたいくつかの基本的な質問でした...

何か良いものを書いたらすぐにここにアップロードしてコメントをもらおうと思っています。

 

EAをローソク足1本につき1回取引させるには?

私はそれがキャンドルごとに一度だけ取引するように私がEAに追加することができますコードの部分があるかどうか疑問に思っていました。

事前にありがとうございます

 
basza:
EAに追加して、ローソク足ごとに1回だけ取引するようなコードはないでしょうか。 よろしくお願いします。

static datetime timeprev;

if(timeprev==Time[0]) { (タイムプレブ==タイム[0])

return(0); //新しいバーで実行するのみ

} else if (timeprev==0)の場合{?

timeprev=Time[0]; //チャートに追加されたばかりの時は何もしない。

return(0);

} else {

timeprev=Time[0]。

// ここでバー処理

}

 
ra300z:
static datetime timeprev;

if(timeprev==Time[0]){。

return(0); //新しいバーの時のみ実行

} else if (timeprev==0)・・・・・・・・・・ {

timeprev=Time[0]; //チャートに追加されたばかりの時は何もしない。

return(0);

} else {

timeprev=Time[0]。

// ここでバー処理

}

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

 

目標値の表示率?

こんにちは

私は、eaの中にコメントの形でパーセンテージの目標を表示しようとしています。

現在の残高をコメントとして表示するコードを書いています。

"Percentage Target : " + AccountBalance()"\n"

eaの冒頭には以下のように書いています。

extern int ProfitPercentage=25;

今、私がしたいことは。 例えば、$5675.69 * 25% = $1418.92 で、$1418.69だけを表示します。

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

 

こんにちは、皆さん。

1:どのようにEAを一度だけ取引するようにするか...(私が言いたいのはコードです)

例えば、MAクロスEA...MAが上にクロスし、ターゲット20ピップでクローズしますが、トレンドが継続すると、速いMAが遅いMAよりまだ上にあるので、別のトレードを開こうとします.MAが下にクロスしたときだけ別のトレードを開く必要があります。

速いMA >遅いMA = 1つだけのトレードパーシグナルが必要です。

速いMA <遅いMA =また、1つだけの貿易の永続的な信号を必要とする

2:交差に時間差をつける方法はありますか?私は、ピップセパレーション(何と呼ぶか知らないが)は、クロスした後、10-15ピップだけトレードを開くのを待つということだけ知っています。

mq4の言語を学ぼうとしているただの初心者です:)

 

一つの方法は、EAが現在のMAではなく、過去のMAの読み取りを見るようにすることです。原理的にはそうでしょう。

// Recognise past crossing (up or down)

if ( fast( past+1 ) slow( past ) )

then cmd = OP_BUY;

else if ( fast( past+1 ) >= slow( past+1 ) && fast( past ) < slow( past ) )

then cmd = OP_SELL;

else return;

// If processing reaches this point, then a trade decision of either OP_BUY

// or OP_SELL has been made, due to recognising a supporting MA crossing

// at "past" number of bars in history.

// Limit to only one trade in a direction

static int last_trade = -1;

if ( last_trade == cmd ) return;

last_trade = cmd;

// If processing reaches this point, then this processing is the first time

// that the supporting MA crossing is recognised.

それは、クロスが発生したバーから「過去」のバー数で 判断し、クロスが初めて検出された時のみ取引を許可するものです。

 

コードありがとうございます。