Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 198
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы точно посмотрели, последний код, что опубликовали? Если да, то мне нужен отдых... спасибо.Переменную "с" отследите.
Да, спасибо! Я вижу - но пока не могу этот код осмыслить до конца - буду эксперементировать!
Victor Nikolaev - спасибо за помощь!
Всем доброго времени суток!
Подскажите пожалуйста можно ли изменить значение МАДЖИК НОМЕР у ордера , который уже закрылся и появился в списке закрытых ордеров.
То есть изменить значение МАДЖИК НОМЕР после закрытия ордера.
Если можно - то при помощи какой функции. У Кима я такой функции не нашел.
Спасибо.Всем доброго времени суток!
Подскажите пожалуйста можно ли изменить значение МАДЖИК НОМЕР у ордера , который уже закрылся и появился в списке закрытых ордеров.
То есть изменить значение МАДЖИК НОМЕР после закрытия ордера.
Если можно - то при помощи какой функции. У Кима я такой функции не нашел.
Спасибо.Нельзя. А зачем Вам вообще это надо - может есть иное решение задачи?
Нельзя. А зачем Вам вообще это надо - может есть иное решение задачи?
Спасибо за подсказку.
Пока ждал ответа кое что пришло в голову. Если не получится - напишу что мне нужно.
Подскажите пожалуйста
if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // если ПОСЛЕДНИЙ ордер
if ( OrderType ()==OP_SELL) // СЕЛ
X = OrderProfit( ); // запомнить величину тейкпрофита
if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // если ПОСЛЕДНИЙ ордер
if ( OrderType ()==OP_SELL) // СЕЛ
if(X < 0) // и если этот сел закрылся по стопу
ОТКРЫТЬ ЕЩЕ ОДИН ОРДЕР
ВОПРОС
Как закодировать дополнение к этим условиям.
Нужно что бы не только последний но и предпоследний и предпредпоследний ордера были закрыты по стопу
и только тогда
ОТКРЫТЬ ЕЩЕ ОДИН ОРДЕР
Спасибо.
Посмотрел. Поправил. В тестере за 3 месяца такой результат
Если в 4 часа утра - еще мало баров за сегодняшний день. На H4 за сутки всего 6 баров. надо задать количество баров для поиска или количество пересечений.
//+-------------------------------------------------------+ //| Подсчет пересечений MA PROBA_MA.mq4| //+-------------------------------------------------------+ #property strict extern int Баров = 500; // Баров для подсчета пересечений МА extern int MA_1 =10; extern int MA_2 =100; void OnStart() { int Бар, Счетчик; double MA_1_Предыдущая, MA_2_Предыдущая, MA_1_Следующая, MA_2_Следующая; ObjectsDeleteAll(); // Удалить вертикальные линии for(Счетчик=0, Бар=0; Бар<Баров; Бар++) // Начинаем с послнего бара { MA_1_Предыдущая = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар+1); MA_1_Следующая = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар); MA_2_Предыдущая = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар+1); MA_2_Следующая = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар); if((MA_1_Предыдущая>=MA_2_Предыдущая && MA_1_Следующая<=MA_2_Следующая) || (MA_1_Предыдущая<=MA_2_Предыдущая && MA_1_Следующая>=MA_2_Следующая)) { Счетчик++; Alert(Счетчик, " Бар = ", Бар, " T = ",Time[Бар]); // Создать вертикальную линию ObjectCreate( (string)Счетчик+"_"+(string)Бар,OBJ_VLINE,0,Time[Бар],0); if(Счетчик == 5) break; // 5 линий есть - выход } } }Расстояния большие = тренд
Подскажите пожалуйста
if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // если ПОСЛЕДНИЙ ордер
if ( OrderType ()==OP_SELL) // СЕЛ
X = OrderProfit( ); // запомнить величину тейкпрофита
if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // если ПОСЛЕДНИЙ ордер
if ( OrderType ()==OP_SELL) // СЕЛ
if(X < 0) // и если этот сел закрылся по стопу
ОТКРЫТЬ ЕЩЕ ОДИН ОРДЕР
ВОПРОС
Как закодировать дополнение к этим условиям.
Нужно что бы не только последний но и предпоследний и предпредпоследний ордера были закрыты по стопу
и только тогда
ОТКРЫТЬ ЕЩЕ ОДИН ОРДЕР
Спасибо.Посоветуйте пожалуйста какой нибудь индикатор может на переделку,интересует на часовом графике каждые сутки отрисовывалась линия от хая до лоу, и возможность получить данные о длинне линии и уголу наклона и можно было поработать с этими данными в коде, я не большой знаток mql4 если самому писать c нуля,большая проблема? помогите пожалуйста
вот индюк ,линия натянута по двум координатам,как не крутил бред получается,прошу помогите,может зря я с этим индюком связался
#property indicator_chart_window //---- input parameters extern int CountDays =22; extern int GMT =0; extern color pivot =Gold; extern color day =Yellow; extern color metka =MidnightBlue; //---- indicator buffers double range[]; double ny_close[]; double low[]; double high[]; datetime time1; datetime time2; datetime ny_time[]; int shift, num; int ny_shift[]; datetime prevDay=0; bool fTime; // ---- void ObjDel() { if (ObjectsTotal() > 0) for (num=0;num<=CountDays;num++) { ObjectDelete("PPw["+num+"]"); } ObjectDelete("mPw"); } // ---- void PlotLine(string name,double value,double value1,double line_color,double style) { double valueN=NormalizeDouble(value,Digits); double valueN1=NormalizeDouble(value1,Digits); bool res = ObjectCreate(name,OBJ_TREND,0,time1,valueN,time2,valueN1); ObjectSet(name, OBJPROP_WIDTH, 1); ObjectSet(name, OBJPROP_STYLE, style); ObjectSet(name, OBJPROP_RAY, false); ObjectSet(name, OBJPROP_BACK, true); ObjectSet(name, OBJPROP_COLOR, line_color); } //*********** void PlotVLine(string name,double tm,double line_color) { bool res = ObjectCreate(name,OBJ_VLINE,0,tm,0); ObjectSet(name, OBJPROP_WIDTH, 0); ObjectSet(name, OBJPROP_STYLE, 2); ObjectSet(name, OBJPROP_COLOR, line_color); } //*********** void PlotPrice(string name, double value, double line_color) { double valueN=NormalizeDouble(value,Digits); bool res = ObjectCreate(name, OBJ_ARROW, 0, time2,valueN); ObjectSet(name, OBJPROP_COLOR, line_color); ObjectSet(name, OBJPROP_WIDTH, 1); ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { fTime = true; IndicatorBuffers(2); SetIndexBuffer(0,range); SetIndexBuffer(1,ny_close); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjDel(); Comment(""); return(0); } //+------------------------------------------------------------------+ //| LNX_Pivots_v3.1 | //+------------------------------------------------------------------+ int start() { int i; double P; datetime cDay = iTime(NULL,PERIOD_D1,0) + (GMT-Period()/60.0)*3600; if (cDay != prevDay || fTime) { ObjDel(); ArrayResize(ny_time,CountDays+1); ArrayResize(ny_shift,CountDays+1); ArrayResize(high,CountDays+1); ArrayResize(low,CountDays+1); ArrayResize(range,CountDays+1); for (shift=0;shift<=CountDays;shift++) { ny_time[shift] = iTime(NULL,PERIOD_D1,shift) + (GMT-Period()/60.0)*3600; ny_shift[shift] = iBarShift(NULL,0,ny_time[shift]); ny_close[shift] = iClose(NULL,0,ny_shift[shift]); } for (shift=0;shift<=CountDays-1;shift++) { int length = ny_shift[shift+1]-ny_shift[shift]; high[shift] = High[iHighest(NULL,0,MODE_HIGH,length,ny_shift[shift])]; low[shift] = Low[iLowest(NULL,0,MODE_LOW,length,ny_shift[shift])]; range[shift] = high[shift] - low[shift]; } for (shift=0;shift<=CountDays-1;shift++) { P = (ny_close[shift]+high[shift]+low[shift])/3; time1 = ny_time[shift]+Period()*60; if (shift==0) { time2 = ny_time[shift] + 24*3600+Period()*60 ; PlotVLine("pV0",time2,day); PlotPrice("mPw",P,metka); } else time2 = ny_time[shift-1]+Period()*60; PlotVLine("pV["+shift+"]",time1,day); int pstyle=0; PlotLine("PPw["+shift+"]",P,P,pivot,pstyle); // *********две координаты******* } fTime = false; prevDay = cDay; } return(0); } //+------------------------------------------------------------------+