ご挨拶!

私はここでいつもの話をしていると思います。 MQL4の新機能、いくつかのコーディング背景(BASICとHTML)、blah、blah、blah、今私は自分のEAを書く際に手を使っています。

それは特別なものではない。私はEMAブレークアウトEAに取り組んでいます。それが私の最初の一つであるので、私はそれを簡単に保つと思った。したがって、EAは20 EMA以下のバーを開いて、その上を閉じることに基づいて動作します。次のバーは、前のバーの上に3ピップの高さのオーダーを開きます。それは基本的なEAであるため、注文はTPまたはSLポイントに当たって閉じられますが、注文を閉じるための他のコーディングはありません。

ここに問題がある。私が持っている最初のバージョンは、すべてのダニの後に注文を開きます。あなたが有益な貿易をしているときニース、あなたがしないときに吸う。だからバージョン2では、別のEAのカウンタコードを追加しようとしましたが、現在は取引が開かれていません。

バージョン1のコードは次のとおりです(申し訳ありませんが、私はきちんとした小さなボックスに入れておきます)。

int start()
{
//----

int cnt、total、ticket;


double emaT = iMA(NULL、0,20,0、MODE_EMA、PRICE_CLOSE、0);
double MacdCurrent = iMACD(NULL、0,12,26,9、PRICE_CLOSE、MODE_MAIN、0);

合計= OrdersTotal();
if(totallt; 1)


ブール購入=偽;
ブール販売=偽;

(MacdCurrent gt; 0))=(1 = gt; 3 * Pointを開く)((Ask == High [1] gt; 3 * Point)(Open [1] lt; emaT)
(MacdCurrent lt; 0))= true;(1)== Bid gt; 3 * Point)(emaT gt;


{
もし(購入)


チケット= OrderSend(Symbol()、OP_BUY、Lots、Ask、0、Ask-StopLoss * Point、Take TakeProfit * Point、Momo Trade、magicnumber、0、Green);
if(ticketgt; 0)

if(OrderSelect(チケット、SELECT_BY_TICKET、MODE_TRADES))


return(0);
}

{
if(売る)


チケット= OrderSend(Symbol()、OP_SELL、Lots、Bid、0、Bid StopLoss * Point、Bid-TakeProfit * Point、Momo Trade、magicnumber、0、Red);
if(ticketgt; 0)

if(OrderSelect(チケット、SELECT_BY_TICKET、MODE_TRADES))

return(0);

}

return(0);
}
//----

バージョン2は同じですが、このコードがカウンタ用に追加されています:

オーダー= OrdersTotal();
for(cnt = 0; cntlt; OrdersTotal(); cnt )

{
if(OrderSelect(cnt、SELECT_BY_POS))
OrderSelect(cnt、SELECT_BY_POS、MODE_TRADES);
if(OrderSymbol()== Symbol())
{
if(OrderType()== OP_BUY)



また、私は誰もが注意を払っているが、私のコードは、以前の高値/安値に基づく注文を(Ask == High [1] gt; 3 * Point)コードで置き換えるのは正しいですか?

ありがとう!