Если я хочу узнать тип последнего закрытого ордера и получил ли он прибыль в советнике, может ли следующая функция сделать эту работу:
Лучше всего,
Нет, не может (просто потому, что закрытые ордера не упорядочены по времени закрытия - по крайней мере, так сказано в руководстве: нет гарантии, что ордера упорядочены по времени закрытия). Это должно быть сделано примерно так:
int OrdersProfit()
{
int profit = 0;
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
if (OrderType()==OP_BUY && OrderProfit()> 0) Profit =1 ;
if (OrderType()==OP_SELL && OrderProfit()> 0) Profit =2 ;
}
}
return(Profit);
}
В последнее время я начал программировать на MQL4, чтобы набраться опыта и иметь возможность кодировать свои собственные идеи для их предварительной проверки.
Сейчас я борюсь с таймингом картины.
Допустим, у меня есть if-статья для стохастика и я хочу подождать, пока MA не станет выше или ниже цены, прежде чем рисовать, как я могу это сделать?
Что я пробовал, и единственное, что пришло мне в голову:
if(iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i) > 80
&& iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80whileHigh[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1) //Candlestick High < Moving Average
(
1+1
)
)
{
Buffer1[i] = High[i]; //Set indicator value at Candlestick High
if(i == 0 && Time[0] != time_alert) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
}
else
{
Buffer1[i] = 0;
1+1 только для заполнения цикла while, то, что я пытаюсь сделать, это подождать, чтобы нарисовать стрелку, пока максимум цены не окажется ниже MA, но я не хочу, чтобы это было и утверждение, так как крест произошел, я просто хочу подождать, чтобы использовать я рисую.
Однако это не увенчалось успехом, поэтому я прошу профессиональных кодеров в сообществе
В последнее время я начал программировать на MQL4, чтобы набраться опыта и иметь возможность кодировать свои собственные идеи для их предварительной проверки.
Сейчас я борюсь с таймингом картины.
Допустим, у меня есть if-статья для стохастика и я хочу подождать, пока MA не станет выше или ниже цены, прежде чем рисовать, как я могу это сделать?
Что я пробовал, и единственное, что пришло мне в голову:
1+1 только для заполнения цикла while, то, что я пытаюсь сделать, это подождать, чтобы нарисовать стрелку, пока максимум цены не окажется ниже MA, но я не хочу, чтобы это было и утверждение, так как крест произошел, я просто хочу подождать, чтобы использовать я рисую.
Однако это не увенчалось успехом, поэтому я прошу профессиональных кодеров в сообществе
Попробуйте вот так:
Buffer1[i] = 0;
if( iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i) > 80
&& iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80
&& High[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1)) //Candlestick High < Moving Average
Buffer1[i] = High[i]; //Set indicator value at Candlestick Highif(i == 0 && Time[0] != time_alert && Buffer1[i]!=0) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
Это даст мне "сигнал, только когда пересечение происходит над МА, я хочу, чтобы оно было под МА, но я также хочу получить сигнал, если у меня есть пересечение над МА, а несколько баров спустя цена движется ниже МА.
Это то, что я пытался сделать с помощью цикла while, так что код будет циклически повторяться, пока аргумент не станет ложным, и начнет рисовать сигнал.
Я сделал схематический рисунок, возможно, вы поймете лучше.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Уважаемый mladen
Если я хочу узнать тип последнего закрытого ордера и получил ли он прибыль в советнике, может ли следующая функция сделать эту работу:
Лучше всего,
Уважаемый mladen
Если я хочу узнать тип последнего закрытого ордера и получил ли он прибыль в советнике, может ли следующая функция сделать эту работу:
Лучше всего,
Нет, не может (просто потому, что закрытые ордера не упорядочены по времени закрытия - по крайней мере, так сказано в руководстве: нет гарантии, что ордера упорядочены по времени закрытия). Это должно быть сделано примерно так:
Уважаемый mladen
Большое спасибо за Ваш прекрасный ответ.
Лучше всего,
Дорогие друзья,
Не могли бы вы обновить прикрепленные индикаторы для последней сборки mt4?
Особенно, "123PatternsV6" замораживает мт4 и не работает!
Дорогие друзья,
Не могли бы вы обновить прикрепленные индикаторы для последней сборки mt4?
Особенно, "123PatternsV6" замораживает мт4 и не работает!
Я думаю, что 123 нуждается в индикаторе зигзаг для работы без замораживания терминала.
Индикатор зигзаг уже доступен в mt4.
Индикатор Zigzag уже доступен в mt4.
Привет.
В последнее время я начал программировать на MQL4, чтобы набраться опыта и иметь возможность кодировать свои собственные идеи для их предварительной проверки.
Сейчас я борюсь с таймингом картины.
Допустим, у меня есть if-статья для стохастика и я хочу подождать, пока MA не станет выше или ниже цены, прежде чем рисовать, как я могу это сделать?
Что я пробовал, и единственное, что пришло мне в голову:
1+1 только для заполнения цикла while, то, что я пытаюсь сделать, это подождать, чтобы нарисовать стрелку, пока максимум цены не окажется ниже MA, но я не хочу, чтобы это было и утверждение, так как крест произошел, я просто хочу подождать, чтобы использовать я рисую.
Однако это не увенчалось успехом, поэтому я прошу профессиональных кодеров в сообществе
Привет.
В последнее время я начал программировать на MQL4, чтобы набраться опыта и иметь возможность кодировать свои собственные идеи для их предварительной проверки.
Сейчас я борюсь с таймингом картины.
Допустим, у меня есть if-статья для стохастика и я хочу подождать, пока MA не станет выше или ниже цены, прежде чем рисовать, как я могу это сделать?
Что я пробовал, и единственное, что пришло мне в голову:
1+1 только для заполнения цикла while, то, что я пытаюсь сделать, это подождать, чтобы нарисовать стрелку, пока максимум цены не окажется ниже MA, но я не хочу, чтобы это было и утверждение, так как крест произошел, я просто хочу подождать, чтобы использовать я рисую.
Однако это не увенчалось успехом, поэтому я прошу профессиональных кодеров в сообществе
Попробуйте вот так:
Попробуйте вот так:
Это даст мне "сигнал, только когда пересечение происходит над МА, я хочу, чтобы оно было под МА, но я также хочу получить сигнал, если у меня есть пересечение над МА, а несколько баров спустя цена движется ниже МА.
Это то, что я пытался сделать с помощью цикла while, так что код будет циклически повторяться, пока аргумент не станет ложным, и начнет рисовать сигнал.
Я сделал схематический рисунок, возможно, вы поймете лучше.
Спасибо за ваш ответ в любом случае