Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1, добавить флаг bool после срабатывания торговых критериев
2, проверьте флаг bool перед размещением заказа
3, после размещения заказа флаг bool должен быть сброшен
4, сбросить флаг в init() тожеСпасибо.
Требуется руководство по MQL =^_^=
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 White
extern int Fast.MA.Period = 5;
extern int Slow.MA.Period = 34;
extern int Signal.period = 5;
//---- буферы
double Buffer1[],
Buffer2[],
b2[],
b3[];
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
// два дополнительных буфера, используемых для подсчета
IndicatorBuffers(4);
IndicatorShortName("MA3_54");
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);
SetIndexArrow(0,242); // вниз 226 234 242
SetIndexBuffer(0,b2);
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);
SetIndexArrow(1,241); //ВЕРХ 225 233 241
SetIndexBuffer(1,b3);
// Эти буферы не строятся, а просто используются для определения стрелок
SetIndexBuffer (2,Buffer1);
SetIndexBuffer (3,Buffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора Custor |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская итерационная функция индикатора |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted();
double MA5,MA34;
int limit=Bars-counted_bars;
Print(" print limit = ", limit);
if(counted_bars>0) limit++;
// Главная строка
for(i=0; i<limit; i++)
{
MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
Buffer1=MA5-MA34;
}
// Сигнальная линия
for(i=0; i<limit; i++)
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);
}
// Стрелки
for(i=0; i<limit; i++)
{
if(Buffer1 > Buffer2 && Buffer1 < Buffer2)
b2 = High+10*Point;
if(Buffer1 Buffer2)
b3 = Low-10*Point;
}
//----
return(0);
}
Можете ли вы научить меня, как создать советника на основе этого индиса? Когда стрелка появляется на экране, и это время, когда советник автоматически входит в позицию, можно ли это сделать? Пожалуйста, направьте меня, так как я заинтересован в обучении =^_^=
Хорошая ссылка
#property indicator_chart_window
#свойство indicator_buffers 2
............ помогите мне, так как я очень хочу научиться =^_^=Посмотрите это руководство, действительно хороший материал по учебнику MQL4
Индис выглядит следующим образом
Вот вышеупомянутый сигнал стрелки, нужен кто-то, кто подскажет мне по кодированию советника.
Спасибо всем, кто в курсе =^_^=
Может ли кто-нибудь помочь мне закодировать это в простой советник?
Привет, ребята, может ли кто-нибудь помочь мне закодировать этот индис в советник? Только простой советник, который входит в позицию, когда стрелки появляются на экране, очень признателен, если вы можете помочь мне на простой советник. =^_^= спасибо.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 White
extern int Fast.MA.Period = 5;
extern int Slow.MA.Period = 34;
extern int Signal.period = 5;
//---- буферы
double Buffer1[],
Buffer2[],
b2[],
b3[];
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
// два дополнительных буфера, используемых для подсчета
IndicatorBuffers(4);
IndicatorShortName("Волновой осциллятор Эллиотта");
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);
SetIndexArrow(0,242); // вниз 226 234 242
SetIndexBuffer(0,b2);
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);
SetIndexArrow(1,241); //ВЕРХ 225 233 241
SetIndexBuffer(1,b3);
//
SetIndexBuffer (2,Buffer1);
SetIndexBuffer (3,Buffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора Custor |
//+------------------------------------------------------------------+
int deinit()
{
//
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted();
double MA5,MA34;
int limit=Bars-counted_bars;
Print(" print limit = ", limit);
if(counted_bars>0) limit++;
// Главная строка
for(i=0; i<limit; i++)
{
MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
Buffer1=MA5-MA34;
}
// Сигнальная линия
for(i=0; i<limit; i++)
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);
}
// Стрелки
for(i=0; i<limit; i++)
{
if(Buffer1 > Buffer2 && Buffer1 < Buffer2)
b2 = High+10*Point;
if(Buffer1 Buffer2)
b3 = Low-10*Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Код для торговли несколькими ордерами?
Есть ли у кого-нибудь хороший код для торговли несколькими ордерами при столкновении с барьером максимального лота?
IE Брокер разрешает только лоты по 5, а вы хотите торговать 10, поэтому функция будет торговать 2 х 5 лотовыми ордерами вместо этого.
Я ищу здесь нечто большее, чем простой цикл. Проблема в том, что простой цикл не всегда будет полностью завершен, и вы можете остаться только с частично открытым ордером.
Как убрать ошибку OrderModify 1
Здравствуйте,
Я не могу избежать ошибки OrderModify error 1: всегда появляется, даже если пытаться контролировать, что данные перед модификацией другие! Я пробовал и doublelenormalize... не помогает...
Вот код:
if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)
{
if (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)
{
Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);
Какие есть предложения?
Спасибо.
Привет, ребята, может ли кто-нибудь помочь мне закодировать этот советник в советник? Только простой советник, который входит в позицию //+------------+
Эти аэро показывают на 2 MovingAverage, пересекающихся, т.е. 5-34, вы можете найти много советников "MA's Cross EA" в поиске и, надеюсь, вы найдете один из них.
Как установить частоту оповещений?
Я новичок в mq4 и пытаюсь создать отображение на экране, когда происходит пересечение MACD. Ниже приведен мой код, но оповещения продолжают появляться каждые несколько минут.
Как я могу сделать так, чтобы алерты появлялись только раз в час? Или по одному алерту на бар?
int start()
{
string MACD1="";
цвет colt9;
double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);
double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);
double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);
double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);
if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }
if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Red; }
if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NEW UP CROSSING"; colt9=LimeGreen; }
if ((MACDM_S11 MACDS_S10)) { MACD1="NEW DOWN CROSSING"; colt9=Red; }
string MACD2="";
цвет colt14;
double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);
double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);
double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);
double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);
if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }
if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Red; }
if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NEW UP CROSSING"; colt14=LimeGreen; }
if ((MACDM_L11 MACDS_L10)) { MACD2="NEW DOWN CROSSING"; colt14=Red; }
if(MACD1=="NEW UP CROSSING"&&MACD2=="IN UPTREND")
Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));
if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")
Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));
if(MACD2=="NEW UP CROSSING"&&MACD1=="IN UPTREND")
Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));
if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")
Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));
return(0);
}
в каких парах?