私のEAをチェックしてもらえますか

こんにちは!
OrderClose()が機能しない理由がわかりません。私を手伝ってくれますか。

extern double TakeProfit = 500;
外部ダブルロット= 0.1。
extern double TrailingStop = 100;
extern double StopLoss = 200。

ダブルサー、素直。
int cnt、チケット、合計。

// ———————————————– ——————-
// |エキスパート初期化機能 |
// ———————————————– ——————-
void OpBuySell()
{
imacurrent = iMA(NULL、0、5、0、MODE_SMMA、PRICE_MEDIAN、0)。
sar = iSAR(NULL、0、0.02、0.2、0);

if(sar <imacurrent)
{
ticket = OrderSend(Symbol() OP_BUY、Lots、Ask、3、Ask-(ストップロス*ポイント)、Ask (テイクプロフィット*ポイント)、 "sar sample"、16384,0、Green);
(0)を返します。
}
if(sar> imacurrent)
{
ticket = OrderSend(Symbol()、OP_SELL、Lots、Bid、3、Bid (ストップロス*ポイント)、Bid-(テイクプロフィット*ポイント)、 "sar sample"、16384,0、Red);
(0)を返します。
}
}
// ———————————————– ——————-
// |エキスパート非初期化関数
// ———————————————– ——————-
void CloseOpBuySell()
{
if(OrderType()== OP_BUY)//ロングポジションがオープンされている
{
if(sar> imacurr ent)
{
OrderClose(OrderTicket()、OrderLots()、入札、5、赤);

}
}
if(OrderType()== OP_SELL)//ショートポジションがオープンされている
{
if(sar <imacurrent)
{
OrderClose(OrderTicket()、OrderLots()、Ask、5、Red);

}
}
}
// ———————————————– ——————-
// |エキスパートスタート機能|
// ———————————————– ——————-
int start()
{
RefreshRates();

int total = OrdersTotal();
total = OrdersTotal();
if(合計<1)
{

OpBuySell();
(0)を返します。
}
for(int cnt = 0; cnt <total; cnt )
{
OrderSe lect(cnt、SELECT_BY_POS、MODE_TRADES);
if(OrderSymbol()== Symbol())//シンボルをチェックする
{

CloseOpBuySell();
(0)を返します。
}
}

}
// ———————————————– ——————-


こんにちは
実行するすべての機能をstart()部分に含める必要があります。
init()はエキスパートをチャートに組み込んだときにのみ使用されます。コードを実行する前に1回だけ行われるようなプリセット計算を行うことができます。
チャートからエキスパートを削除しながらdeinit()を使用

下のリンクはあなたにもっと良い理解を与えるはずです
book.mql4.com/programm/structure


まず、コードを貼り付けたり、SRCボタンを使用したりしないでください。
$ BBhFs$K!”$”$J$?$,0lEYCmJ8$r%*!<%W%s$9$k$H!"@dBP$G$J$$$Hsarは決して更新されません。

みんなありがとう、
私はすべてのコードをstart()部分に追加しました、そしてEAは素晴らしい働きをします。




5479: https://www.mql5.com/en/forum/124782


Originally posted 2019-08-04 04:26:30.

Translate »