Заработай ручей - найди ошибку
Страница 1 из 812 12 ПоследняяПоследняя
Results 1 to 10 of 13

Thread: Заработай ручей - найди ошибку

  1. #1
    Вложений: 1 Уважаемый форум,

    сначала позвольте мне объяснить, что я пытаюсь сделать.

    По сути, вы можете определить каждую свечу с 2 параметрами.
    Давайте определим High-Low любого бара как 100%. Свеча открывается на 0% (внизу) и закрывается на 100% (вверху) у вас есть сильный бычий бар без каких-либо фитилей. Если вы посмотрите на 0/5 бар, то это будет 95% свечи, идущей вверх.

    Поскольку оба параметра варьируются от 0 до 100%, вы получаете 10.000 различных типов свечей. Чтобы выяснить, есть ли какая-либо прогнозирующая ценность в некоторых барах, вы ищите бар, определенный XY, и измеряете результат (разница в цене) после x баров с помощью: Close [i] (наш сигнальный бар) -Close [i-shift ] (Панель результатов)Точка, показывающая пройденное расстояние в пипсах. Если тот же Бар появляется снова, запишите Результат.

    Я пытался сделать это с 3-х мерным массивом
    [Открытый процент] [Закрыть процент] [Результат], но на самом деле это не сработало.
    Все выходные файлы просто содержали 0, поэтому я попробовал другой подход. Теперь мое 3-е измерение использует только первый индекс [0], но как строковый массив, поэтому мы просто добавляем 2-й результат к последнему и разделяем их;; Теперь единственное, что мне нужно сделать, это взять 2 для циклов (0100 первое измерение 0100 второе измерение), чтобы прочитать каждый результат, который работает, но каждый файл содержит одну и ту же строку снова и снова. Кроме того, сценарий записывает примерно 14K результатов в одну строку, что не имеет смысла, поскольку это будет означать, что почти все мои бары в моей истории (~ 15k баров) попадают в одну и ту же группу (из 10k доступных). Я предполагаю, что скрипт взял результат каждого бара и поместил его в тот же массив, который я абсолютно не понимаю, почему.

    Я добавил функцию, которая будет печатать результаты (столько, сколько MT4 может обработать) во вкладке Experts, и все, кажется, работает хорошо, но это не так.

    Будьте осторожны, сценарий записывает около 2 гигабайт данных для 15 тыс. Баров в 10.000 файлов и занимает несколько минут.
    Вы можете легко изменить это, чтобы сделать файл для каждого OpenPercentage и всех 100 его ClosePercentages (одна строка для каждого ClosePercentage), это уменьшит файлы до 100, но приведет к большим файлам.


    Может ли кто-нибудь взглянуть на это и заставить эту чертову штуку работать?

    https://www.forex-russian.com/attach...1328401943.mq4

  2. #2
    1 Вложений: 1 Привет, tjpld .... посмотрим, что дает ..... как вы рассчитывали на отображение результатов ....../--- сделали нечто подобное некоторое время назад. .... наносил на график каждую свечу на каждой паре на каждом таймфрейме .... исторический успехпровал можно было увидеть по цветам .... максимальное количество баров, показанных за один раз, составляло 200, что является большим охватом в днях и неделях но не так много в 5 и 15-минутных барах .... это было чрезвычайно интригующее исследование ..... взглянем на ваш код ...... h
    https://www.forex-russian.com/crypto...al-profit.html

  3. #3
    Зачем нужен трехмерный массив, когда вы можете просто использовать 3 параллельных массива?

  4. #4
    Спасибо за ответ Софар. Я хотел бы отобразить их в Excel, если каждая строка имеет вид 05,90, -23,25,3,1,0, -56,32,12,7,8,0,1, -4 с первыми двумя числами параметры, которые вы можете просто посчитать, сколько -4s у вас есть в ваших результатах и ​​сколько -3s и так один. Если вы построите этот график, вы увидите, как распределяются ваши результаты. Для булавки внизу вы должны увидеть, что большинство результатов находятся в отрицательной области, и какие результаты встречаются чаще всего и т. Д. Вы можете загрузить эти результаты в индекс и отобразить все возможные результаты с их вероятностями. @Ronald Ну, 3-мерный массив имеет для меня смысл с самого начала. Я очень хочу узнать, можете ли вы показать мне более простой и логичный или эффективный способ.

  5. #5
    Это в основном система координат 2. Каждая свеча имеет открытие и закрытие на уровне х% относительно максимумаминимума. Итак, почему бы не превратить это в две координаты? Используя массивы, у вас есть два варианта: преобразовать координаты в строку. Используйте два параллельных массива. Итак, используя метод # 1: вставленный код строки CoordinateArray # 91; # 93 ;; for (int I = Bars; I gt; 0; I--) {//Рассчитать процент открытия и закрытия double OpenPercent; двойной ClosePercent;/Генерируем строку координатной строки Coordinate = DoubleToStr (OpenPercent, 12) , DoubleToStr (ClosePercent, 12); CoordinateArray # 91; ArrayResize (ArraySize (CoordinateArray) 1) - 1 # 93; = Координата; } Использование метода # 2 Вставленный код double OpenPercentArray # 91; # 93 ;; double ClosePercentArray # 91; # 93 ;; for (int I = Bars; I gt; 0; I--) {double OpenPercent; двойной ClosePercent; OpenPercentArray # 91; ArrayResize (ArraySize (CoordinateArray) 1) - 1 # 93; = OpenPercent; ClosePercentArray # 91; ArrayResize (ArraySize (CoordinateArray) 1) - 1 # 93; = ClosePercent; }

  6. #6
    Спасибо! Но я не уверен, решит ли это проблему, назначит ли это правильный результат каждому типу свечи? Я уверен, что мои процедуры расчета в порядке, и что я присваиваю каждый результат в правильное измерение. Но почему сценарий повторяет одну и ту же строку результатов снова и снова? Я просто не могу понять, почему это так. Это то, что приносит мне больше всего. Пока это происходит независимо от того, как выглядит мой массив, у меня все еще будут проблемы. Правильно?

  7. #7
    Вы уверены, что печатаете каждый элемент массива?

  8. #8
    Я бы так сказал. Вставленный код FileWrite (дескриптор, массив # 91; x # 93; # 91; y # 93; # 91; 0 # 93; x и y управляются двумя циклами, и результаты для каждого типа свечи сохраняются в первом индексе 3-го измерения. Поэтому мне нужно распечатать только один элемент, который является суперстрокой, созданной. Массив вставленного кода # 91; ui # 93; # 91; di # 93; # 91; 0 # 93; = массив # 91; пользовательский интерфейс # 93; # 91; ди # 93; # 91; 0 # 93; DoubleToStr (deltaPrice, 0) ;; Я также пытался заполнить каждый массив вставленным кодом int range = ArrayRange (array, 2)/Проверяет, сколько элементов находится в нашем массиве измерений результатов # 91; ui # 93; # 91; di # 93; # 91; range 1 # 93; = deltaPrice; Поэтому, если уже есть 5 результатов для этого конкретного типа свечи, в следующий раз, когда мы найдем эту свечу, результат переместится в 6-й индекс и так далее. Это заняло бы у меня 3 цикла, чтобы распечатать результаты в файлах, если массив [x] [y] [z], мой последний цикл должен быть таким, как этот вставленный код для (int z = 0; zlt; = ArrayRange (массив , 2), z ), поскольку для каждого типа свечей может быть различное количество результатов, мы должны были бы искать количество элементов в 3-м измерении с индексом 2. С помощью этого метода я получил только 1000 файлов, содержащих только один 0 ,

  9. #9
    У меня была ошибка несколько раз назад, когда мне приходилось инициализироватьопределят ь размер массива с помощью ArrayResize или чего-то в этом роде ... надеюсь, вы могли бы использовать эту информацию ... Или хотя бы определить свой массив с фиксированным размером .... Вставленный код строковый массив # 91; 100 # 93; # 91; 100 # 93; # 91; # 93 ;;

  10. #10
    Это интересная идея. Но я бы изобразил это как объемную поверхность. XY будет как ваши 0-100 значений (размер фитиля). Z - это количество свечей в будущем, которое мы пытаемся предсказать, а цвет точки будет зависеть от процента победных прогнозов. Примерно так: http://www.mathworks.com/access/help...aphics_s21.gif http://www.csar.illinois.edu/F_softw…rface_mesh.gif
    http://www.creative-wisdom.com/pub/multi-vis/volume.GIF

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

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