//CloseOrder void CloseOrder() {double PR=0; while(!IsTradeAllowed()) Sleep(10); RefreshRates(); if(OrderType()==OP_BUY) PR=Bid; if(OrderType()==OP_SELL) PR=Ask; if(!OrderClose(OrderTicket(),OrderLots(),PR,Slippage,CLR_NONE)) Print("Order close error: ",GetLastError()); return;} //Close all Orders void CloseAllOrders() { for(int i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { CloseOrder(); } return;}
シンボルもチェック しないし、マジックナンバーもチェックしない......。
となると、異なるEAを載せてライブで使うのはどうなるのでしょうか?
シンボルもチェックしないし、マジックナンバーもチェックしない......。
となると、異なるEAを載せてライブで使うのはどうなるのでしょうか?
1つの口座で2つのEAを動かすということでしょうか?
1つの口座から2つのEAを稼働させるということでしょうか?
こんにちは。
私はmql 4の初心者で、簡単な2EMAクロスアドバイザを作りました。デモ口座でテストしましたが、実際の口座で使うのは少し怖いです。
1時間足で小ロットでテストするのは時間がかかりすぎるし、数分足でテストするのはコストがかかるので、私のブローカーの最小ロットは約7米ドルです。
だから、私はあなたがそれを見て、私が作ったかもしれないいくつかの明白な間違いを指摘することができればありがたいのですが。
しかし、エラーが発生した場合、何が問題を引き起こしたかを診断するために、より多くの情報が必要です。
if(tic < 0) Print("Open order error: ", GetLastError());
これはいいのですが、もっと必要です。どの変数をプリントすれば、エラーの原因を特定できるでしょうか? 必要なものが決まったら、それらをすべてプリント()呼び出しに加え、アスク、ビッドなどのダブル変数に正しい小数(DoubeToStr(値、桁))を使用することを確認します。
トレーディング関数の戻り値を催促されることなくチェックする人がいるのは良いことです.
申し訳ありませんが、私はその部分を理解していませんでした。私が得た唯一のものは、私がPrint()呼び出しに できる限り多くの変数を追加する必要があることです。ご指摘、ありがとうございました。
deVriesさん、 こちらこそアドバイスありがとうございます、これで意味がわかりました。
他に修正すべき点はありますか?
あります。
すでに最大限のバーがあるとすると(限度がある)......。
では、新しいローソク足が開く瞬間をうまくとらえるにはどうしたらいいでしょうか?
最新のバーの時刻を確認する Time[0]
NewBarで検索すると、いくつかの例が見つかります。
ありがとうございます、私はこれを見つけたhttps://www.mql5.com/en/code/10370
if(Cmd==OP_BUY) {PR=Ask; if(TakeProfit>0) TP=Ask + Ask*TakeProfit/100; if(StopLoss>0) SL=Ask - Ask*StopLoss/100; if(SL<0) SL = 0; if(TP<0) TP = 0; clr = Green;}
これは正しいとは思えません。
Takeprofitが100pipsでStoplossが150pipsってどうやるんだ?
update see"ストップロスやテイクプロフィットは ピップスではなく、ビッドやアスクのパーセンテージで表示されます。
シンボルが5桁の場合、結果はしばしば2桁多くなります。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
こんにちは。
私はmql 4の初心者で、簡単な2EMAクロスアドバイザを作りました。デモ口座 でテストしましたが、実際の口座で使うのは少し怖いです。
1時間足で小ロットでテストするのは時間がかかりすぎるし、数分足でテストするのはコストがかかるので、私のブローカーの最小ロットは約7米ドルです。
だから、私はあなたがそれを見てみると、私が作ったかもしれないいくつかの明白な間違いを指摘することができればありがたいのですが。
このアドバイザーは、非常に不安定なBitcoin/USD市場(価格は1日に+-30%変動することがあります)で取引することになっており、したがってストップロスとテイクプロフィットはピップではなく、ビッドまたはアスクのパーセンテージになります。
変数とか。
この関数は、注文ごとに使用できるロットサイズを、預金残高の割合に応じて決定します(int Risk)。
これは新規注文を出す関数で、Cmdは買いか売り。
ここでは、1つの注文を閉じたり、すべての注文を閉じたりします。
この関数は、高速EMAと低速EMAの差(高速EMA - 低速EMA)を計算するために使用されます。
そして、ここからが本体です。
私はトレーリングストップを追加し、EmaDiffをゼロにするのではなく、slowとfast EMAが互いに非常に接近し、すべてのバーで交差したときに切り刻まれないように、いくつかの小さなwalueと比較することを検討しようと思っています。