function run() { vars Price = series(price()); vars Trend = series(LowPass(Price,500)); Stop = 4*ATR(100); if(valley(Trend)) enterLong(); else if(peak(Trend)) enterShort(); }
Это уже целая система. Мы видим, что главная функция теперь называется «run» вместо «main».
Боб занимается валютной торговлей с 1995 г. В некоторые годы его прибыль достигала шестизначных цифр, и единственным предметом его беспокойства была налоговая декларация. Но в последнее время дела идут не очень хорошо. Фактически, в течение последних трех лет он приносил только убытки. Резервы тают. Что-то должно измениться. Но что? Боб уже посетил все существующие семинары по трейдингу. Он уже прочитал все книги по трейдингу. Остается только один вариант. Именно поэтому Бобу сегодня назначена встреча с Алисой.
Пока я еще не стал миллионером, я должен продолжать торговать. Это был просто пример цикла «while».
В коде это будет выглядеть следующим образом:
while(Vermoegen < 1000000) trade(Vermoegen);
Оператор while имеет точно такой же синтаксис, как и оператор if. Имеется условие — в данном случае, что переменная Vermoegen меньше одного миллиона — и последующий оператор, который выполняется, если условие истинно. В этом случае программа будет просто продолжена. С другой стороны, с помощью оператора while программа «перепрыгивает» назад к условию и проверяет его снова. Если он по-прежнему применим, зависимое утверждение выполняется снова. Это повторяется до тех пор, пока либо условие не станет ложным в какой-то момент, либо пока кто-то не выдернет вилку из розетки.
Если я хочу тратить больше 3 000 евро в месяц, мне нужна новая стратегия. В противном случае подойдет моя старая стратегия.
Это пример ветви if/else. В коде это будет выглядеть следующим образом:
if(Ausgaben > 3000) neue_strategie_starten(); else alte_strategie_fortsetzen();
Операторы «if» используются, когда сценарий должен принимать решения — то есть, когда он должен вести себя по-разному в зависимости от того, истинно условие или нет. Таким условием может быть ввод данных пользователем, величина случайного числа, результат математической операции или пересечение двух индикаторов. Основная форма оператора if выглядит следующим образом:
Функция также может принимать переменные или числовые значения от вызывающей функции, использовать их для своих вычислений и возвращать результат. Вот пример функции, которая получает переменные и возвращает их:
var euro_to_dollar(var Euro) { var Kurs = 1.36; return Euro * Kurs; }
Переменная var Euro в скобках содержит числовое значение, которое передается в функцию. Эта переменная может использоваться в функции как любая другая переменная. Чтобы вернуть число, запишите его — или выражение, которое вычисляет это число — после оператора return. Это возвращаемое число — называемое возвращаемым значением — может быть затем обработано в вызывающей функции.
Как только вы поймете переменные и функции, вы узнаете, как работает сценарий. Точно так же, как объявляются переменные, вы должны объявить функции, прежде чем сможете их использовать. Вот небольшой пример объявления функции:
function addiere() { var a, b, c; a = 3; b = 5; c = a + b; }
Функция — это не что иное, как набор деклараций и инструкций, которые затем поочередно выполняются компьютером. Давайте рассмотрим некоторые свойства функций:
► Функция объявляется словом function, за которым следует имя функции и пара скобок ( ). Скобки используются для передачи дополнительных переменных в функцию; подробнее об этом позже. В нашем случае мы не передавали никаких переменных, поэтому скобки пусты.
Сценарий знает два типа объектов: Переменные и функции. Переменная — это место в рабочей памяти компьютера, которое используется для хранения чисел, текста или другой информации. Поскольку вы не всегда хотите помнить, какие числа хранятся в каком месте компьютера, каждой переменной в скрипте дается имя. Несколько примеров строк в сценарии, которые вы используете для определения переменных:
var Preis; var ProzentProMonat = 1.5; // ежемесячные проценты int Tage = 7; string Reichtum = "Я богат!"; bool Gewinn = true;
Это всего лишь несколько коротких строк кода, но мы можем многому у них научиться:
► Прежде чем вы сможете их использовать, каждая переменная должна быть определена с указанием ее типа и имени (программисты говорят «объявлена»). Когда вы пишете эту строку кода:
Чтобы взломать фондовый рынок, вам нужны две вещи. Во-первых, программное обеспечение для изучения, тестирования и реализации торговых методов, а во-вторых, компьютерный язык для определения ваших стратегий. Однако из сотен существующих торговых платформ и языков очень немногие подходят для взлома фондового рынка. Визуальные «наборы для построения стратегий» или программы электронных таблиц можно использовать только для очень простых систем, с которыми невозможно получить прибыль. Для разработки реальной стратегии невозможно обойтись без программирования.
Это правда, что язык программирования изучается гораздо быстрее, чем иностранный язык, потому что вам не нужно зубрить словарный запас. Если вы все же хотите избежать этого, вы можете читать книгу вообще без программирования.
Классический метод принятия торговых решений на основе кривой цен называется техническим анализом. Он основан на убеждении, что иное представление ценовой кривой — с помощью так называемых технических индикаторов — дает представление о ситуации на рынке и может в нужный момент указать сигналы на покупку или продажу.
Обычно вы хотите знать, растет или падает цена. Для этого прогноза вы смотрите на последнюю часть ценовой кривой — скажем, на цены закрытия последних 20 баров. Итак, у вас есть 20 различных цен, которые вы хотите свести к одному числу, скажем, к будущему тренду цен. Математически это означает, что вы выполняете преобразование из 20-мерного пространства чисел в 1-мерное пространство. Такая функция преобразования называется техническим индикатором. Расчет с 20 измерениями звучит сложно, но общие показатели очень просты.