///// Есть некий массив торгуемых инстурментов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);
同事们帮帮忙!!!真的需要AMA指标,这是MT5的标准,但只适用于MT4,拜托了!!。
这怎么可能呢。
在市场上购买。
Ask:1.05310000, Bid:1.05280000, price:1.05310000, sl:1.05251000, tp:0.00000000
误差130。
sl在传输前被归一化。
mode_stoplevel==0
为什么...模拟账户。
上午:市场分析......今天的新闻,水平......Oanda和其他%的开放交易,没有指标......进入交易......在许多货币对上,有大的SL和TP,TP比SL大2倍,由支持和阻力水平设置,....,我把监控留到晚上。
晚上:大约55-60%的交易,股票处于盈利状态......我几乎关闭所有的交易......。我保留了其中的一些,并按级别进行平均...
为什么...真实账户:我做的是早上--之后就没有像演示上的晚上了.....,我离开一两个小时......一旦我看到利润,我就关闭......然后我做一个残酷的....。...然后我等待一系列平均数的关闭......尽管演示的利润在存款的百分比上更大......即使没有平均数......。
我明白,心理因素阻止我......贪婪......害怕甚至300ppm的损失......。我应该怎么做?忘记了真正的账户?
该专家同时交易几种工具
...忘记真正的分数......?
这就是答案。
这里是专家顾问的一个片断。
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