///// Есть некий массив торгуемых инстурментовstring symbolfotrade[] = {"EURUSD", .........}
///// Массив флаговbool isTradedClosed[] = {false, .....}
bool isTradedOpen[] = {false, .....}
//// Общая переменнаяbool isAllTraded = false;
int isTradedCount = 0;
start()
{
symbfotradeCount = ArraySize(symbolfotrade);
вначале перебор закрытых ордеров. С конца в начало
if (!isAllTraded)
{
Перебор массива торгуемых инструментов
{
if (isTradedClosed[i]) continue;
Перебор закрытых ордеров с конца в начало
{
Если (символ равен symbolfotrade[i]) то {isTradedClosed[i] = true; isTradedCount++; break}
{
}
Если isTradedCount==symbfotradeCount то isAllTraded = true; ///// Чтобы не лазать по массивам
}
/// ОБнуляем
ArrayInicialized(isTradedOpen, false);
Потом перебор по открытым ордерам
{
Если (симвло равен symbolfotrade[i]) то isTradedOpen[i] = true;
}
Все теперь если (isTradedOpen[i] = труе и isTradedClosed[i] = труе) то ордер открыт, при этом было закрытие по этому инструменту symbolfotrade[i] ранее.
Только после остальные расчеты
}
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE); }
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
同僚が助けてくれます!!MT5で標準装備されているAMAインジケーターがどうしても必要なのですが、MT4用しかありません PLEASE!
なんてことはありません。
市場で購入する。
アスク:1.05310000、ビッド:1.05280000、価格:1.05310000、SL:1.05251000、TP:0.00000000
はエラー130を 出す。
は、送信前に正規化されます。
mode_stoplevel==0
なぜか...デモ口座
朝:市場分析・・・今日のニュース、レベル・・・Oandaなど%オープントレード、指標なし・・・取引に入る・・・多くのペアで、大きなSLとTP、TPはSLの2倍、サポートとレジスタンスのレベルで設定、・・・夕方までモニターを残しておく。
夕方:約55~60%のトレードで、エクイティが利益になっている...ほぼ全部決済している...。一部を残し、レベル別に平均化する...。
なぜか...リアルアカウント:朝からやって、そのあとデモのように夕方がない...。 1、2時間放置...。利益が出たらすぐにクローズして、それからブルータルアベレージングをするんだ...。...それから、一連の平均の終値を待ちます...デモの利益は預金に対する割合で大きいですが...平均を使わなくても...。
私は心理的な要因が私を防ぐことを理解する...欲...失うことさえ300 ppmの恐怖...どうしたらいいんだろう?リアルアカウントは忘れた?
エキスパートが複数の商品を同時に取引する。
...を忘れてしまうほど、リアルなスコア...?
というのが答えです。
Expert Advisorの一部をご紹介します。
total=OrdersTotal();
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
コードを理解するのを助けてください。この状態をどう表現するのが正しいのかわからない。
EAの一部をご紹介します。
まずは、https://book.mql4.com/ru/operators/if をお読みください。