Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1558
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нужно использовать OnTradeTransaction
Посмотрите ответ, присланный Владимиром Карпутовым
https://www.mql5.com/en/forum/393483
https://www.mql5.com/ru/docs/series/copybuffer
Я по ходу и сейчас не понимаю куда пихать этот копибуфер если
пихается в хендл мувинга
Я по ходу и сейчас не понимаю куда пихать этот копибуфер если
пихается в хендл мувинга
Что вы хотите получить?
У вас есть код для мт4, чтобы понимать что нужно?
Что вы хотите получить?
У вас есть код для мт4, чтобы понимать что нужно?
double rsii1[100], rsii2[100],profit_m[100]; int b,s,b1,s1;
extern int rsi_shift=1;
extern int rsi_period1=4;
extern int rsi_period2=14;
extern int N=5;
extern int Level1=20;
extern int Level2=80;
extern int Level3=30;
extern int Level4=70;
int signal() // 3. Signal Function
{
int b = 0, s = 0, b1 = 0, s1 = 0; // Reset conditions
for (int i = 1; i <= N; i++) // Conditions over the last bars
{
rsii1[i] = iRSI(_Symbol, PERIOD_CURRENT, Inp_RSI_ma_period, PRICE_CLOSE, i);
rsii2[i] = iRSI(_Symbol, PERIOD_CURRENT, Inp_RSI_ma_period, PRICE_CLOSE, i);
if (rsii1[i] < Level1) b = 1;
if (rsii1[i] > Level2) s = 1;
if (rsii2[i] < Level3) b1 = 1;
if (rsii2[i] > Level4) s1 = 1;
}
double rsi1 = iRSI(_Symbol, PERIOD_CURRENT, rsi_period1, PRICE_CLOSE, rsi_shift);
double rsi2 = iRSI(_Symbol, PERIOD_CURRENT, rsi_period1, PRICE_CLOSE, rsi_shift + 1);
double rsi3 = iRSI(_Symbol, PERIOD_CURRENT, rsi_period2, PRICE_CLOSE, rsi_shift);
double rsi4 = iRSI(_Symbol, PERIOD_CURRENT, rsi_period2, PRICE_CLOSE, rsi_shift + 1);
if (rsi1 > rsi3 && rsi2 <= rsi4 && b == 1 && b1 == 1) return (ORDER_TYPE_BUY); //открываем покупку
if (rsi1 < rsi3 && rsi2 >= rsi4 && s == 1 && s1 == 1) return (ORDER_TYPE_SELL); // открываем продажу
return(0);
}
я его пытаюсь переделать под 5 вставив в два значения rsi хендл мувинга
Кросс РСИ и МА выше или ниже заданных уровней
т.е РСИ выше 70 и МА выше 60 при кроссе сверху вниз открывается шорт, и наоборот РС ниже и МА ниже при кроссе снизу вверх открывается лонг.
вот таких функций у меня с пара десятков и пытаюсь адаптировать их под 5. Что то получается что то нет.
З.Ы. как вы скрываете область кода чтобы не получались такие простыни? я кнопки спойлера не вижу чтобы не кидать полторы тысячи строк на 5ке
double rsii1[100], rsii2[100],profit_m[100]; int b,s,b1,s1;
З.Ы. как вы скрываете область кода чтобы не получались такие простыни? я кнопки спойлера не вижу чтобы не кидать полторы тысячи строк на 5ке
Вот доделал ещё кое что, по идее должно закрывать при получении профита в ххх суммы
я хочу переделать условие на "если у нас есть ордера и они такого то типа и они в прибыли на сумму OverProfit то при получении противоположного сигнала закрываются. Иначе наша сетка ордеров при достижении убытка усредняет позицию на сумму OverLoss/
как я понял надо вставить в функцию поиска сигналов запоминающуюся переменную и после закрытия позиций обнулять её.
Что меня тут напрягает - я понятия не имею как работать с этими структурами и беру куски из базы, поэтому правлю методом тыка.
Привет, я новичок в mql5, но я научился и создал советник, который дает "BREAK OF STRUCTURE". Он печатает "BOS", когда найден BOS, он отлично работает и отображается как объект в тестере стратегий, но я не могу применить его на графике реального времени. Пожалуйста, помогите.
EX5 удален модератором.
iTime(0, PERIOD_M1, 0) ;
Может лучше так попробовать