а что в журнале?
а что в журнале?
Прикрутил: loaded successfuly
прошел тик:
removed
И все слетел
а причина - 0 ?
а причина - 0 ?
что дает запуск на дебаге?
что дает запуск на дебаге?
вот такую фигню см. прикрученный файл
//--- объявляем переменные типа boolean, они будут использоваться при проверке условий для продажи
bool Sell_Condition_1 = (ma2Val[1]<ma2Val[2]) && (ma2Val[2]<ma2Val[3]); // iMA падает
bool Sell_Condition_2 = (ma4Val[1]>ma4Val[2]) && (ma4Val[2]>ma4Val[3]); // iMA отката растет
bool Sell_Condition_3 = (p_close <ma4Val[1]); // предыдущая цена закрытия ниже MA
//--- собираем все вместе
if(Sell_Condition_1 && Sell_Condition_2)
{
if(Sell_Condition_3)
{
// есть ли в данный момент открытая позиция на продажу?
if(Sell_opened)
{
Alert("Уже есть позиция на продажу!!!");
return; // не добавлять к открытой позиции на продажу
}
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type= ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_AON; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены
//--- отсылаем ордер
OrderSend(mrequest,mresult);
// анализируем код возврата торгового сервера
if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("Ордер Sell успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Sell не выполнен - код ошибки:",GetLastError());
return;
}
}
}
return;
}
вот из за этого куска капризничает. Что же я там напортачил?
пишет, что обращение к массиву вне его диапазона. то бишь у вас массивы не той длины. или вообще нулевой.
проверьте их инициализацию.
один из этих
bool Sell_Condition_1 = (ma2Val[1]<ma2Val[2]) && (ma2Val[2]<ma2Val[3]); // iMA падает
bool Sell_Condition_2 = (ma4Val[1]>ma4Val[2]) && (ma4Val[2]>ma4Val[3]); // iMA отката растет
bool Sell_Condition_3 = (p_close <ma4Val[1]);
пишет, что обращение к массиву вне его диапазона. то бишь у вас массивы не той длины. или вообще нулевой.
проверьте их инициализацию.
один из этих
bool Sell_Condition_1 = (ma2Val[1]<ma2Val[2]) && (ma2Val[2]<ma2Val[3]); // iMA падает
bool Sell_Condition_2 = (ma4Val[1]>ma4Val[2]) && (ma4Val[2]>ma4Val[3]); // iMA отката растет
bool Sell_Condition_3 = (p_close <ma4Val[1]);
Заработала эта сковорода
после того как динамические массивы сделал статическими
double maVal[4]; // динамический массив для хранения значений индикатора iMA
double ma1Val[4]; // динамический массив для хранения значений индикатора iMA
double ma2Val[4]; // динамический массив для хранения значений индикатора iMA
double ma3Val[4]; // динамический массив для хранения значений индикатора iMA
double ma4Val[4]; // динамический массив для хранения значений индикатора iMA
А сколько может быть динамических массивов?
думаю, сколько память позволит.
только вот такое описание int a[]
и последующее к нему обращение a[3] - не обозначает, что он автоматически должен увеличить число своих элементов.
это надо делать принудительно. ArrayResize
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
создал советник, скомпилировал ошибок не показывает, цепляю к графику. цепляется. Но с первым тиком его сбрасывает с графика.
может без прикручивания кода к теме кто то догадывается почему это происходит?
Разработчики скорее всего догадываются. Может подсказку какую скажете?