コーディングのヘルプ - ページ 18

 

EAでエラーが発生する場合 ヘルプが必要です

1つの取引だけを取得する

icustom ARROWで生成されたすべてのトレードが必要です。

ただし

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0);//

else newbar=Time[0]です。

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000, 2,1).iCustom(NULL,0, "NBO-System_v1")。

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!=EMPTY_VALUE)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick).を送信。

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

ファイル:
ea.png  22 kb
 
Pava:

Thats beautiful!...FXのフォーラムに詩を(笑)

 
あなたのEAではこの条件

オーダートータル()==0

は、一度に1つ以上の注文を出すことを妨げています。もし1つ以上の注文を出したいなら、この条件を取り除いてください。しかし、同じバーで複数の注文を出さないようにコードを追加する必要があります(そうしないと、数十万の注文を出すことになってしまいます)。次のような関数を 使用することができます。

int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

そして、あなたの完全な条件(買いの場合)は次のようになります。

[
PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)

同じバーで複数の注文を出すことを防ぎます。(このコードでは、現在のバーですでに出ている注文の種類をチェックしません。

vegadigitalco:
1トレードのみ取得

icustom ARROWで生成されたすべてのトレードが必要です。

しかし

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0);//

else newbar=Time[0]です。

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000, 2,1).iCustom(NULL,0, "NBO-System_v1")。

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!= EMPTY_VALUE )

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick).を送信。

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

}
 

Very Very ThanX for HELPPPPPPPPPPP

HELPPPPPPPPのためのVery Very ThanX

HELPPPPPPPのためのVery Very ThanX

HELPPPPPPPPのためのVery Very ThanX

HELPPPPPPPPPPのための非常に非常にThanX

mladen:
あなたのEAでは、この条件

注文合計()==0

もし1つ以上の注文を出したいなら、この条件を削除してください。ただし、同じバーで複数の注文を出さないようにするコードを追加する必要があります(そうしないと、数十億の注文を出すことになります)。次のような関数を使用することができます。
int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

そして、あなたの完全な条件(買いの)は次のようになります。

[PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)
同じバーで複数の注文を出すことを防ぎます。(このコードでは、現在のバーで既に出している注文の種類はチェック しません。
ファイル:
 

バランスはバックテスト、ライブデモテスト、リアルマネートレーディングのバランスです。

EAの半自動売買は、十分クールで良いので、私の頭にはありません(半自動とは、フライバイワイヤーのように、注文を出すときに余計なハードルがあり、コンピュータはあなたのエントリーを無効と することができます)。

しかし、ティックイーズはビデオゲームの火輪のようなもので、一度に入れる場所はほんのわずかで、他は簡単に燃えてしまう --- これはここ5〜10ヶ月の市場の状況ではない、物事は簡単になってきている。

上のEAのコードを読んでみたいんだけど、僕の理解力の限界を超えているんだ。

 

上記のコード化されたトレードでアラートが必要

こんにちは、mladenです。

あなたのユニークなサポートに感謝します。

もう一つ、上記のコードで生成された買いや売りにアラートコードを 追加するにはどうしたらいいでしょうか?

ライブマーケットでは買いも売りも成立せず、ただ新しいトレードを作るだけです。

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

 

...

このようなものを試してみてください(これは買いのみの例です)。
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

vegadigitalco:
こんにちはmladen、

1more事の

ためのあなたのユニークなサポートをありがとう

、どのように私はあなたが提案した上記のコードで生成された購入または売却時に警告コードを追加することができます。

ライブ市場でそれはdosntを閉じる購入または売却、そのだけで新しい取引を行う。

事前にThanXを参照してください。
 

このEAがどのようにトレードを行うか、とても気に入っています。

 

こんにちは、mLadenさん。

本当にありがとうございました:)

ただ1つの問題が残っています。

ライブマーケットで、前の売買ポジションをクローズせず、新しいトレードを作成するだけです。???

ADVでThanX

mladen:
このようなものを試してみてください(これは買いのみの例です)。
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

 

...

ベガディジタルコ

そのためには、EAに決済ロジックを追加する必要があります。テイクプロフィットや ストップロスを使うか、出口ルールに基づいた明示的なOrderClose()を使うか、どちらかです。

vegadigitalco:
こんにちは、mLadenです。

本当にありがとうございました。)

ただ1つの問題が残っています。

ライブマーケットで、前の買いまたは売りポジションを閉じず、新しいトレードを作成するだけです。???

ADVでThanX
理由: