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

 
islandrock:
このコードでは、私のEAが開いた各取引の有効期限を、開いた時刻から12時間にはしません。

注文の有効 期限は、保留中の注文にのみ機能します。OrderSend() が OP_BUY または OP_SELL の場合、コード内で注文の時間を設定する必要があります。ここでは、1つの簡単な例を示します。

int OrderTime;

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask+TakeProfit*Point,"timetest",16384,0,Green)

OrderTime=TimeCurrent();

int total = OrdersTotal();

for(int cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if((OrderType() <= OP_SELL) && (OrderSymbol() == Symbol()) )

{

if(OrderType()==OP_BUY && TimeCurrent()-OrderTime>(12*60)*60)

{

OrderClose(OrderTicket(),LotsOptimized(),Bid,3,Violet);

}

}

}

Wackena

 

コードが正しく機能しない

しかし、コンパイルしてロードした後、そのメールは次の時間、分番号59に完璧に送信され、その後、二度と送信されなくなりました。

分59秒に送信する必要はありません。

bool mail;

int start()

{

もし (Minute()>=59 && !mail){

SendMail("Account Status","Account Balance is="+DoubleToStr(AccountBalance(),2)+"_Account Equity is="+DoubleToStr(AccountEquity(),2)+")

口座利益 = "+DoubleToStr(AccountProfit(),2)+"_Account Margin is="+DoubleToStr(AccountMargin(),2)+" (口座マージン = "_AccountMargin(),2)

"_口座の自由なマージンは="+DoubleToStr(AccountFreeMargin(),2) "である。)

mail=true。

}

 

というのも、現在のコードでは、もちろん1通のメールしか送信されないからです。

 

mail変数にどんなテストをしているのか?

mail=trueの直後に、次のように記述するのはどうでしょう。

if (分()<=58 && !mail)

mail=falseとする。

これならうまくいくと思いますか?

私はそれが間違ってコーディングされていると思います。

 

を入れればいいと思います。

if (minute()<=58 && mail) // !mail ではなく mail に注意。

mail= false;

そして、それはあなたの最初のifの外にあるはずです。}

おそらく、それをコード化するためのより良い方法がありますが、それは動作するはずです。

 

やってみる

ありがとうございます、やってみます。

 

という感じです。

 

コードのこの部分についてヘルプが必要です

このコードを正しく書ける人はいますか? 私は、買いと売りのオープントレードを個別にシングルアウトしようとしています...

すなわち、if open bid > 2.

もしオープンアスク>2なら

残りはわかったのですが、その部分がうまくコーディングできません。

簡単なことなのですが、髪が抜けてしまいそうです。

 

誰か?

誰か? これは悪い質問だったのかもしれない

 

if(Open[0] > 2){ //open bid

//あなたのコード

if(Open[0]+(Ask-Bid) > 2){ //open ask

//あなたのコード

}

ブローカーによっては、オープンアスクのバックテストが 機能しない場合があります。