Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В результате получаем файл, sing.
И в нем разное количество строк. Чего быть ну никак не должно!
В результате получаем файл, sing.
И в нем разное количество строк. Чего быть ну никак не должно!
Смотрим первый лист, я там исходник для теста выложил. :)
По коду видно, что явный контроль срабатывания на открытии бара текущего таймфрейма (а таймфрейм H4) был закомментирован и вставлен контроль открытия минутки (M1). Это означает, что нет никакого контроля (М1 - это совсем не H4) по срабатыванию на открытии бара.
Я уже показал постом выше, что изменение рыночных окружений (свопы, спред, минимальный отступ от рынка) явным образом изменяет результат сделок в прошлом. Но это мог легко самостоятельно выяснить любой трейдер, который бы просто проанализировал несколько расходящихся сделок для предоставления доказательств. В первую очередь доказательств для себя...
Привет Renat!
double perceptron()
...
if(Volume[0]>1) return;
SSA[4]=iMA(NULL,0,Lag/5,0,MODE_SMA,PRICE_MEDIAN,1);
FileWrite(handle, SSA[4]);
Вот у меня где явный контроль. Перенес для верности!
// if(Volume[0]>1) return(0);
if(iVolume(NULL,PERIOD_M1,0)>1) return(0);
int ticket = -1;
// check for opened position
int total = OrdersTotal();
if (Volume[0]==1) {per=perceptron(); sumx = 1;} - а вот еще, тоже контроль.
Я файл переделал под тест. Так то смысл, в таком распределении контроля был.
Но как файл для теста, мне кажется, он должен работать корректно!
Вот у меня где явный контроль. Перенес для верности!
Вот когда раскомментируете первую строку функции start и уберете вторую, то код будет корректным. А пока код ошибочен (не соблюдается правило контроля срабатывания только и только на открытии бара) вне зависимости от того, что где-то там внутри что-то еще проверяется.
Оформляйте MQL4 код в соответствующем виде, пожалуйста. Для этого есть кнопка MQL на панели редактора.
Перечитайте статьи в соответствующем разделе, пожалуйста.
Вот у меня где явный контроль. Перенес для верности!
Вот когда раскомментируете первую строку функции start и уберете вторую, то код будет корректным. А пока код ошибочен (не соблюдается правило контроля срабатывания только и только на открытии бара) вне зависимости от того, что где-то там внутри что-то еще проверяется.
Оформляйте MQL4 код в соответствующем виде, пожалуйста. Для этого есть кнопка MQL на панели редактора.
Перечитайте статьи в соответствующем разделе, пожалуйста.
Renat не обижайся!
Сделал как ты сказал. Раскоменнтировал указанную тобой строчку.
Ничего не изменилось. Файлы получаются по количеству строк разные. .
Тоесть выходит что имеется разное количество баров. Чего быть не должно.
Работаю по котировкам InterbankFX.
Если это имеет значение.
Компилируем, запускаем тестирование и видим, что независимо от метода тестирования (Open Price, Control Points, Every Tick) и независимо от периода на котором происходит тестирование (H1, M15, M30), мы всегда проходим одно и тоже количество баров на заданном периоде (в данном случае, четырехчасовки). См. видео.
#property copyright "Copyright © 2006, Yury V. Reshetov ICQ:282715499 http://reshetov.xnet.uz/"
#property link "http://reshetov.xnet.uz/"
#include <stderror.mqh>
#include <stdlib.mqh>
int handle;
double arryTimeSeries[],SSA[];
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
ArrayResize(arryTimeSeries,6000);
ArrayResize(SSA,6000);
handle = FileOpen("sing", FILE_CSV|FILE_WRITE,';');
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if(Volume[0]>1) return(0);
if(iVolume(NULL,PERIOD_M1,0)>1) return(0);
if (Volume[0]==1) {perceptron();}
}
//+------------------------------------------------------------------+
//| The PERCEPTRON - a perceiving and recognizing function |
//+------------------------------------------------------------------+
double perceptron()
{
if(Volume[0]>1) return;
SSA[4]=iMA(NULL,0,6,0,MODE_SMA,PRICE_MEDIAN,1);
FileWrite(handle, SSA[4]);
return(0);
}
Вот сократил до минимума!
Пока выходит что Volume, в отличие от iTime - работает не корректно. Спасибо за идею правильного контроля. Попробую использовать.
А файл, все же проверьте! Он счас точно понятен.