Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 96
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте!
Помогите пожалуйста написать советник.
Суть советника: открывает 4 ордера по 1 лоту.
2 на продажу: usdchf; eurusd;
2 на покупку: gbpusd; usdjpy;
При достижении общего профита в 5 пунктов, закрыть все сделки. И начать заново.
4 лота в сумме?
а если профита не будет? от слова совсем.
Здравствуйте!
Помогите пожалуйста написать советник.
Суть советника: открывает 4 ордера по 1 лоту.
2 на продажу: usdchf; eurusd;
2 на покупку: gbpusd; usdjpy;
При достижении общего профита в 5 пунктов, закрыть все сделки. И начать заново.
Не нужно дублировать свой вопрос в разных темах.
Обращайтесь во Фриланс.
Приветствую.
Подскажите как прописать условие чтоб действие выполнялось при открытии новой свечи на текущем графике?
Здравствуйте! Помогите разобратся с массивами!
Необходимо заполнить массив индикатором МАСД. Как я понимаю, есть данные: индекс бара, значение MODE_MAIN, значение MODE_SIGNAL, т.е массив должен быть трехмерным типа ( a [] [] []), или как?? Если можно пример.
https://www.mql5.com/ru/articles/159
Сергей, а ты сам когда-нибудь пользовался этим кодом?
Статья в общем хорошая, но пользоваться
очень опасно. Чтобы это работало надо, по рекомендации барабашки, историю "подёргивать" периодически. За какое место не уточнялось.
В общем после долгих страданий я пришёл к выводу что лучше пользоваться функцией CopyRates()
Сообщения о возможных ошибках дописывает каждый сам себе по желанию.
{
static datetime timeLastBar;
MqlRates mqlRates[];
int s = 0;
do
{
s++;
}
while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 0 && s < 7);
bool ret = timeLastBar != mqlRates[0].time;
if(ret)
timeLastBar = mqlRates[0].time;
return(ret);
}/*******************************************************************/
Сергей, а ты сам когда-нибудь пользовался этим кодом?
Статья в общем хорошая, но пользоваться
очень опасно. Чтобы это работало надо, по рекомендации барабашки, историю "подёргивать" периодически. За какое место не уточнялось.
Алексей, подскажи, когда ты нарывался на ошибки при таком использовании? Было хоть раз?
Просто я сам пользуюсь таким методом, и ещё не нарывался на неприятности. Впрочем, может ещё предстоит?
Хотелось бы пояснений - во-избежание таксказать... :)
А где барабашка такое говорил?
Алексей, подскажи, когда ты нарывался на ошибки при таком использовании? Было хоть раз?
Просто я сам пользуюсь таким методом, и ещё не нарывался на неприятности. Впрочем, может ещё предстоит?
Хотелось бы пояснений - во-избежание таксказать... :)
А где барабашка такое говорил?
https://www.mql5.com/ru/forum/89213
Там 8 страниц перепалки. И не только барабашка, но Slawa говорят что
Где Вы видите неадекватное поведение функции? Вы документацию внимательно читали?
Возвращает информацию о состоянии исторических данных. Не обновляет информацию, не инициирует подкачку данных. Просто возвращает то, что есть на данный момент
Алексей, подскажи, когда ты нарывался на ошибки при таком использовании? Было хоть раз?
Просто я сам пользуюсь таким методом, и ещё не нарывался на неприятности. Впрочем, может ещё предстоит?
Хотелось бы пояснений - во-избежание таксказать... :)
А где барабашка такое говорил?
И вот про подёргивание
В одном терминале (на периоде М15 стояли советники) на одном символе не сработало - я на 99% процентов уверен, что проблема в том, что при использовании чужого таймфрейма нужно всё время "поддёргивать" историю. Думаю это лучше делать через CopyTime().
Алексей, подскажи, когда ты нарывался на ошибки при таком использовании? Было хоть раз?
В терминале МТ5 есть для примера советники (MACD Sample и Moving Averages), так вот, если в коде этих советников в хенделе индикатора вставить конкретный ТФ, например PERIOD_H4, вместо "_Period", то при тесте по ценам открытия на старших ТФ, возникает ошибка загрузки индикатора: cannot load indicator 'MACD' [4805] и как следствие: tester stopped because OnInit failed. Какие мнения? Может я делаю, что-т не так? Возможно ли закодировать советника так, чтобы он тестился по ценам открытия на любом ТФ?
Пробовал вставлять индикатор, как кастомный, ошибка та же.
Заранее благодарю за ответ.
int OnInit(void)
{
//--- prepare trade class to control positions if hedging mode is active
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
ExtTrade.SetExpertMagicNumber(MA_MAGIC);
ExtTrade.SetMarginMode();
//--- Moving Average indicator
ExtHandle=iMA(_Symbol,PERIOD_H4,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
if(ExtHandle==INVALID_HANDLE)
{
printf("Error creating MA indicator");
return(INIT_FAILED);
}
//--- ok
return(INIT_SUCCEEDED);
}