
Чтобы ответить на этот вопрос, Zorro дополнительно анализирует стратегию с помощью метода Монте-Карло. По сравнению с обычным моделированием, метод Монте-Карло дает более точные и менее случайные результаты.
В анализе Монте-Карло кривая доходности, полученная в результате моделирования, разбивается на множество отдельных сегментов, которые меняются местами в случайном порядке.
— В 2000 года менеджеры отделов внутридневных операций подтвердили на слушаниях в сенате США, что от 80% до 90% их клиентов теряли свои средства и/или уходили с рынка в течение шести месяцев после начала торговли.
— Большое исследование тайваньских дейтрейдеров в 2004 года показало, что более 80% теряли деньги, и только 0,03% стабильно зарабатывали.
— Более недавнее исследование 2017 года, проведенное исследователями из Университета Беркли и Пекинского университета, показало, что 75% дневной торговой активности приходится на трейдеров с отрицательным средним доходом.
— Исследование бразильских дейтрейдеров, проведенное в 2019 году, показало, что 97% всех индивидуальных трейдеров, которые продержались более 300 дней, теряли деньги. Только 1,1% заработали больше, чем текущая минимальная заработная плата в Бразилии, и только 0,5% заработали больше, чем текущая начальная зарплата банковского кассира.
Телеграм канал: https://t.me/TradPhronesis

Некоторые из значений, отображаемых в окне Zorro, получаются непосредственно в результате моделирования, другие — такие как коэффициент Шарпа, кратко затронутый выше, — требуют более или менее сложных расчетов. Все эти значения на самом деле служат лишь для ответа на два вопроса: насколько прибыльной является стратегия? И насколько вероятно получить тот же результат при реальной торговле? Оба аспекта в совокупности дают эффективность — результативность стратегии. На первый вопрос ответить легко, но на второй и более важный вопрос, к сожалению, ответить сложно.

set(LOGFILE);
LOGFILE — это флаг — что-то вроде «переключателя», который можно включить или выключить. Такие флаги «устанавливаются», т.е. включаются, с помощью функции set. Если установлен флаг LOGFILE, сохраняется журнал всех событий во время теста. Вставьте строку, нажмите на [Test], затем откройте файл Alice1a_EURUSDtest.log в папке log редактором SED или любым другим текстовым редактором. Файл представляет собой длинный список записей, похожих на эту:

Запустите Zorro. Выберите скрипт Alice1a и актив EUR/USD (все скрипты и стратегии, описанные в книге, можно скачать с сайта financial-hacker.com/). Убедитесь, что ползунок Период установлен на 60 минут. Затем нажмите [Test]:

Продолжите выполнение сценария. Следующая строка устанавливает стоп-лосс:
Stop = 4*ATR(100);
Stop — это предопределенная переменная. Zorro уже «знает» его, поэтому его не нужно определять с помощью var. Он определяет стоп-лосс, т.е. максимально допустимый убыток. Позиция автоматически продается, если она теряет больше указанной суммы. Здесь этот предел задан 4*ATR(100). Функция ATR является традиционным индикатором — Average True Range.

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 программа «перепрыгивает» назад к условию и проверяет его снова. Если он по-прежнему применим, зависимое утверждение выполняется снова. Это повторяется до тех пор, пока либо условие не станет ложным в какой-то момент, либо пока кто-то не выдернет вилку из розетки.