Прочитайте сначала ... затем прочитайте еще раз, пока не поймете.
https://book.mql4.com/variables/arrays
Например, первый элемент массива - это элемент 0 , немного похоже на Bars, fumy that, eh ? ;-)
- Вы ошиблись.
- array[1,2,3,4,5,6,7] giberish
- array[1] = (Low[3] < Low[4] && Low[3]... является ли массив bool
- Low_1 = array[1] подразумевает, что массив не является bool
- "хранить сигналы в статическом массиве" Почему он должен быть статическим, если вы можете вычислять их, когда это необходимо.
Упс, я имел в виду int array[1][7];
Спасибо за ответ
Ну, после некоторого дальнейшего чтения, вашего направления и вопросов, я думаю, что массив может быть не тем, что я пытаюсь сделать.
В основном я хочу научиться создавать свою собственную определенную версию максимумов и минимумов; и иметь возможность ссылаться на них для сигнала даже после формирования новых баров. Но только некоторые из них, которые я выбираю, а не всю полную историю максимумов/минимумов.
Возможно, я нахожусь на неверном пути.
Я подумаю над этим еще раз.
Спасибо
В основном я хочу научиться создавать свою собственную определенную версию максимумов и минимумов; и иметь возможность ссылаться на них для получения сигнала даже после формирования новых баров. Но только некоторые из них, которые я выбираю, а не всю полную историю максимумов/минимумов.
Думаю, я сделаю что-то более похожее на это:
Полагаю, это делает этот пост больше не о массивах на данный момент, так что я откажусь от этой постановки вопроса, пока не смогу узнать больше о массивах.
Спасибо.
static double Low_A; if(Low[2] < Low[2] && Low [2] < Low[1]) { Low_A = Low[3]; Print (Low_A + " Low_A has formed"); }
Почему? Можете ли вы объяснить, чего вы пытаетесь достичь?
Конечно, это не максимумы и минимумы конкретной свечи, но, возможно, серия свечей.
Скажем, в качестве примера можно назвать Low_A в зависимости от того, сколько свечей я хочу использовать, но можно сказать, что минимумом считаются 4 свечи выше слева и 4 свечи выше справа, и эта низкая свеча будет считаться Low_A
Или я могу использовать больше свечей или меньше, чтобы составить минимум или максимум, а затем создать другие подобные свечи для максимумов и минимумов.
Затем создать несколько функций для сравнения предыдущих минимумов с последующими минимумами и предыдущих максимумов с последующими максимумами.
Затем, возможно, построить линию тренда из серии либо 2 максимума/минимума, либо 3 максимума/минимума, либо, возможно, даже больше
Или я могу просто использовать, как в этом примере, одну свечу, которая имеет 1 более низкую свечу слева и 1 более низкую свечу справа, и назвать это минимумом.
Первоначально я рассматривал возможность поместить результат в массив, но я не думаю, что это сделает то, что я хотел, или, по крайней мере, я не понимаю массивы достаточно хорошо, чтобы определить это на данный момент. Дальнейшее чтение, несомненно, поможет мне разобраться. ХА!
Я действительно не был уверен, что массивы будут полезны для хранения серии максимумов и минимумов, которые я определяю.
Если я печатаю Low[2], это дает мне 8 цифр вместо 5 цифр, и некоторые из них все 0.0000000.
Возможно, потому что тип данных, который я использовал, был static double Low_A;
Я не уверен, что мне нужно заставить его печатать правильно, однако для хранения правильного статического значения я не уверен, какие данные использовать.
Мне нужен новый дизайн. Очевидно, что то, что я пытался сделать, не будет работать должным образом, и теперь я понимаю почему.
Итак, снова возвращаемся к чертежной доске. OUCH
Вернемся к этому,
После дополнительного изучения я задался вопросом, существует ли вообще такая вещь, как статический массив, или массив является статическим по умолчанию, и после прочтения ссылок, которые вы предоставили, я скажу, что все они являются статическими по умолчанию. Отлично.
В любом случае, я думаю о iFractals вместо того, чтобы пытаться отмечать максимумы и минимумы, как я их определяю. Я могу использовать фракталы до тех пор, пока не получу больше знаний и не прочитаю больше.
Так что насчет iFractals, как я могу отмечать их и ссылаться на них?
Могу ли я просто создать дополнительные iFractals, изменить сдвиг и ссылаться на него таким образом, или сдвиг с iFractals все еще будет говорить о Барах, а не о предыдущем Фрактале?
//+------------------------------------------------------------------+ //| Support and Resistance | //| Copyright © 2004/5 Barry Stander | //| http://www.4Africa.net/4meta/ | //+------------------------------------------------------------------+ #property copyright "Support and Resistance Barry_Stander_4@yahoo.com" #property link "http://www.4Africa.net/4meta/" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- buffers double v1[]; double v2[]; double val1; double val2; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { //---- IndicatorBuffers(2); SetIndexArrow(0, 119); SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red); SetIndexBuffer(0, v1); SetIndexLabel(0,"Resistance"); SetIndexArrow(1, 119); SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue); SetIndexBuffer(1, v2); SetIndexLabel(1,"Support"); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i=Bars; //---- while(i>=0) { val1=iFractals(NULL, 0, MODE_UPPER,i); if (val1 > 0) v1[i]=High[i]; else v1[i]=v1[i+1]; val2=iFractals(NULL, 0, MODE_LOWER,i); if (val2 > 0) v2[i]=Low[i]; else v2[i]=v2[i+1]; i--; } //---- return(0); } //+------------------------------------------------------------------+
Кто-то написал этот код, и я понимаю, как он работает, но я не уверен, что понимаю, как я буду выбирать из массива конкретный High и/или Low aka Support/Resistance.
То есть я могу сделать функцию, которая будет открывать сделку if(val1 > imacd) или что-то в этом роде, но как насчет предыдущих фракталов, или, скажем, 2 назад,
Будет ли это просто вопросом сдвига?
Или мне нужно поместить это в другой массив?
Пожалуйста, посоветуйте.
Спасибо
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет всем,
Во-первых, спасибо всем за ответы, это было здорово изучать MQL4
Я перехожу к пониманию того, как строить массивы.
Тема:
Как хранить сигналы в статическом массиве, например: максимумы и минимумы серии свечей и т.д., скорее всего я буду ставить маленькую линию поверх каждого максимума и минимума.
Итак, я думаю, статический массив[1,2,3,4,5,6,7].
array[1] = (Low[3] < Low[4] && Low[3] < Low[3]) // или что-то вроде этого?
Low_1 = array[1]
Low_2 = array[2] и так далее.
Является ли это стандартным способом сделать это или я заблуждаюсь?
Пожалуйста, подскажите, спасибо