Посмотрите этот пример и исправьте его
Страница 1 из 812 12 ПоследняяПоследняя
Results 1 to 10 of 18

Thread: Посмотрите этот пример и исправьте его

  1. #1
    если нам нужно выполнить некоторые вычисления, например:
    (iHigh (EURUSD, PERIOD_H1,0) -OrderOpenPrice ()) gt; 0.0030) и использовать таймфрейм один час, проблема, когда мы переходим к следующему кадру, может быть условием, что оно не будет доступно. Мне нужно указать iHigh для панели, из которой я получил OrderOpenPrice.

    некоторые люди советуют мне использовать OrderOpenTime () и shiftbar (), но я не знаю, как я могу их использовать, пожалуйста, предоставьте мне пример и большое спасибо.

  2. #2

    Quote Originally Posted by ;
    Привет, FXEZ, у меня есть другой вопрос. прямо сейчас я получил максимум за бар, который я получил от него, открывая цену открытия (). Следующий quetion будет: если я хочу получить самую высокую цену после того, как был открыт orderopenprice (). Правильно ли это. Пожалуйста, предоставьте мне пример. iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, [//10/количество баров], [//shift/начиная с этой строки]));
    Вам нужно это сделать. , , iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, shift-1, 0)); количество баров идет справа налево. , , 0 - текущая полоса, сдвиг - это iBarShift, где ваш заказ открыт

  3. #3
    нет кодера здесь или программиста !!!! каким-то образом некоторые люди сказали мне связаться с командой FF, но я не знаю, кто командаforex-russianи как я могу связаться с ними.

  4. #4

    Quote Originally Posted by ;
    если нам нужно сделать некоторые вычисления, например: (iHigh (EURUSD, PERIOD_H1,0) -OrderOpenPrice ()) gt 0.0030) и использовать таймфрейм один час, проблема при переходе к следующему кадру может быть условием не будет , Мне нужно указать iHigh для панели, из которой я получил OrderOpenPrice. некоторые люди советуют мне использовать OrderOpenTime () и shiftbar (), но я не знаю, как я могу их использовать, пожалуйста, предоставьте мне пример и большое спасибо.
    Вы можете попробовать что-то вроде: Inserted Code int shift = iBarShift (EURUSD, PERIOD_H1, OrderOpenTime ()); if (iHigh (EURUSD, PERIOD_H1, shift) - OrderOpenPrice () gt; 0.003) {//что-то делать} Документация:
    http://docs.mql4.com/series/iBarShift
    http://docs.mql4.com/series/iHigh
    https://sites.google.com/site/market...OrderOpenPrice
    https://sites.google.com/site/market...#OrderOpenTime

  5. #5
    Спасибо FIXES, за вашу настоящую помощь. еще раз спасибо

  6. #6
    Привет, FXEZ, у меня есть другой вопрос. прямо сейчас я получил максимум за бар, который я получил от него, открывая цену открытия (). Следующий quetion будет: если я хочу получить самую высокую цену после того, как был открыт orderopenprice (). Правильно ли это. Пожалуйста, предоставьте мне пример. iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, [//10/количество баров], [//shift/начиная с этой строки])); то if (iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, [//10/количество баров], [//смещение/начиная с этой строки])) - (OrderOpenPrice () gt; 0.003) ) {//сделать что-то} много спасибо int shift = iBarShift (EURUSD, PERIOD_H1, OrderOpenTime ()), if (iHigh (EURUSD, PERIOD_H1, shift) - OrderOpenPrice () gt; 0.003) {//сделать что-то}

  7. #7

    Quote Originally Posted by ;
    Вам нужно это сделать. , , iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, shift-1, 0)); количество баров идет справа налево. , , 0 - текущая полоса, сдвиг - это iBarShift, где ваш заказ открыт
    Он должен быть сдвигом 1 для поля count из-за того, что текущий бар равен 0, а iHighest возвращает сдвиг (а не счет). Если верхний бар был текущим, iHighest должен вернуть 0. Код должен быть: Введенный код iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, shift 1, 0)); Однако если вы попытаетесь: Вставить код печати (iHighest (NULL, 0, MODE_HIGH, 0, 0)); он, по-видимому, дает наивысший индекс штрих-кода по всему набору данных (предположительно по умолчанию). Когда я пытаюсь: Вставить код печати (iHighest (NULL, 0, MODE_HIGH, 1, 0)); Он возвращает 0, поскольку текущая полоса (всегда) самая высокая из последних 1 бара. Если OP не хочет включать строку строки ввода, она должна просто сдвигаться, а не сдвигать 1. из файла справки: Введенный код double val;/вычисление наибольшего значения на 20 консекутивных барах в диапазоне/от 4-го до 23-го индекса включительно на текущем графике val = High # 91; iHighest (NULL, 0, MODE_HIGH, 20,4) # 93 ;;

  8. #8
    Это будет нормально: int shift = iBarShift (EURUSD, PERIOD_H1, OrderOpenTime ()); iHigh (EURUSD, PERIOD_H1, iHighest (EURUSD, PERIOD_H1, MODE_HIGH, shift, 0)); ========= Обратите внимание: я не программист. что я хочу: 1- после того, как я получил orderopenprice, я хочу, чтобы clculate был самым высоким для некоторых баров, независимо от условий ниже, чем после orderopneprice после него. 2-Я хочу, чтобы количество баров переместилось слева направо не справа налево. пожалуйста, проверьте и исправьте это, если это неправильно (пример будет очень хорошим). ====== если ihighest - orderopenpricegt; 0,0030 (1,3061-1,3030) gt; 0,0030, что означает, что следующим условием будет ((0,00312) gt; ставка), позиция будет закрыта с 0,0015 пром. если ((1.3090-1.3030)2), что означает, что мы получили 30 пунктов int shift = iBarShift (EURUSD, PERIOD_H1, OrderOpenTime ()); iHighest (EURUSD, PERIOD_H1, MODE_HIGH, shift-5, shift); if (((iHighest - OrderOpenPrice ()) gt 0.000000) (((iHighest OrderOpenPrice ())2) gt; MarketInfo (EURUSD, MODE_BID))) {закрыть позицию}; Я думаю, что если мы заменим shift-5 на 0, возможно, это будет лучше. он начнется со сдвиговой полосы и завершится с помощью текущего бара, который будет означать тот же самый бар. Если бы произошло условие, он будет искать вторую полосу сдвига условия = 1.3061 и orderopenprice () = 1.3030, что означает, что, возможно, она закроется в том же баре, если цена достигает 1,3045 или ниже. если бы он не переместился на следующий бар, что означает, что он сохранит высоту для полосы сдвига и закроется в 1.3045 или ниже, если следующий бар, который после сдвиговой полосы даст нам новый максимум, как 1.3091, что означает, что он закроется, когда цена достигнет 1.3060 или ниже и т. Д .... пожалуйста, помогите мне с хорошим примером.

  9. #9
    Счетчик строк идет справа налево. , так оно и есть, в настоящее время формирующийся бар находится в баре 0, следующий бар слева - это бар 1, затем бар 2 и т. д. Что FXEZ говорит правильно. , , ты нуждаешься в этом . , double HighestAfterOrder = iHigh (EURUSD, 0, iHighest (EURUSD, 0, PRICE_HIGH, shift, 0)); затем используйте это. , , if (HighestAfterOrder - OrderOpenPrice () gt 0.0030 HighestAfterOrder (OrderOpenPrice ()2) gt; MarketInfo (EURUSD, MODE_BID)) {закрыть позицию}

  10. #10
    Введенная строка кода PriceToStr (double p) {return (DoubleToStr (p, Digits)); }: datetime OOT = OrderOpenTime ();/Предполагается, что OrderSelect () уже выполнен int iOOT = iBarShift (NULL, 0, OOT);/Bar открытого #define iBarCURRENT 0/Включить текущий бар int nSince = iOOT - iBarCURRENT 1;/Нет. Бары С момента открытия. int iHi = iHighest (NULL, 0, MODE_HIGH, nSince, iBarCURRENT); двойной HH = высокий # 91; iHi # 93 ;;/Высочайший уровень. Печать (Высокий с момента открытия заказа, TimeToStr (OOT), есть, PriceToStr (HH));

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.