Jump to content
muvingman

Напишу советник, скрипт, индикатор на MQL бесплатно

Recommended Posts

AntZ

Скрины чуть позже скину, сейчас тест идёт. Блок записи средств в файл каждую минуту и 00 сек. может кто изобразит?

Share this post


Link to post
Share on other sites
AntFX
19 минут назад, AntZ сказал:

Блок записи средств в файл каждую минуту и 00 сек. может кто изобразит?

Что-то типа такого (правда это не точно 00 сек, но дальше уже сами сообразите)

Скрытый текст

 

int h;

 

int OnInit(){

h=FileOpen("equity.csv",FILE_WRITE|FILE_TXT|FILE_ANSI);

if(h==INVALID_HANDLE){Print("Error creating file!"); return(INIT_FAILED);}

EventSetTimer(60);

return(INIT_SUCCEEDED);

}

 

void OnDeinit(const int reason){

FileClose(h);

EventKillTimer();

}

 

void OnTimer(){

if(h!=INVALID_HANDLE){

FileWriteString(h,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+";"+(string)AccountEquity()+"\n");

}

}

 

 

Edited by AntFX

1

Share this post


Link to post
Share on other sites
AntZ

))) я не особо програмист, вставил в тело "старт" куча ошибок, вставил как функцию тоже что-то не то

2019-01-12_12-42-36.png

Share this post


Link to post
Share on other sites
AntFX
3 минуты назад, AntZ сказал:

))) я не особо програмист, вставил в тело "старт" куча ошибок, вставил как функцию тоже что-то не то

Если Вы не особо программист, то без Вашего кода встроить в него запись в файл не получится.


1

Share this post


Link to post
Share on other sites
AntZ

понял, сейчас разберёмся

Share this post


Link to post
Share on other sites
AntZ

разобрался, спасибо,  всё пишет

  • Upvote 1

Share this post


Link to post
Share on other sites
AntZ

правда пишет не корректно, видать когда нет тиков минуты проваливаются, а некоторые минуты повторяются несколько раз, корректный хронологический график не построить, надо думать дальше

Share this post


Link to post
Share on other sites
AntFX
11 минут назад, AntZ сказал:

правда пишет не корректно, видать когда нет тиков минуты проваливаются, а некоторые минуты повторяются несколько раз, корректный хронологический график не построить, надо думать дальше

Если из моего кода делали с OnTimer то тики непричем. В любом случае как уже сказал помочь можно только если Вы выложите код целиком.


1

Share this post


Link to post
Share on other sites
Ugar68

Системный таймер может тормозить, сильно увеличивая интервалы вплоть до бесконечных,  если большая нагрузка на систему, особенно влияет большая очередь к диску. Актуально для работы на vps, особенно  с механическими дисками.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ
12.01.2019 в 12:19, AntFX сказал:
  12.01.2019 в 12:07, AntZ сказал:

В тестере четвёрке визуально на графике средства видно что просадка допустим 1000 а в отчёте 5000, как это можно объяснить?

 

А там вообще есть график средств, или только баланса?))) В отчете тоже разные просадки показываются. Для конкретизации нужны скрины из тестера.

МТ4 строит график по сделкам, заставить его строить график по времени не получится. Как Вы правильно сказали для этого нужно самому из эксперта записывать эквити в файл.

 

Тест за 3 года, на графике не видно просадки в 9800 ?

2019-01-13_00-08-02.thumb.png.f10574190fd95079eaa671f658f7ed3a.png2019-01-13_00-06-51.thumb.png.c32a574ef86b9de5bcf538ee76f530a4.png

Share this post


Link to post
Share on other sites
Ugar68

Тестер рисует график по сделкам, а просадку фиксирует даже когда сделки открыты. Если открыть сделку она сходила в просадку, потом вышла в прибыль и её закрыли в прибыли, на графике просадки не будет, а в отчёте будет.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ

Вот поэтому и хочу записывать историю средств в эксель. Я конечно не асс в программировании но вродь и не совсем болван, но воще не врубаюсь почему не запускается таймер, пол интернета уже перечитал, всё вроде правильно вписываю. 

2019-01-13_13-04-44.png

2019-01-13_13-13-07.png

Share this post


Link to post
Share on other sites
Ugar68

Потому что системный таймер не работает в тестере.  Надо перенести всё что написано внутри OnTimer внутрь OnTick.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ
26 минут назад, Ugar68 сказал:

Потому что системный таймер не работает в тестере.  Надо перенести всё что написано внутри OnTimer внутрь OnTick.

дак тогда он будет только на тиках писать, ночью будет пропускать минуты т.к. тиков мало, и надо тогда "защиту" от повтора ставить, в одну минуту несколько раз пишет

Share this post


Link to post
Share on other sites
Ugar68
8 минут назад, AntZ сказал:

дак тогда он будет только на тиках писать, ночью будет пропускать минуты т.к. тиков мало, и надо тогда "защиту" от повтора ставить, в одну минуту несколько раз пишет

Так Вам надо в тестере или в реале? Вы же писали что в отчёте тестера просадка, которой нет на графике.

Если поместить в OnTick то будет писать с каждым тиком. Если по таймеру будет писать с интервалами таймера независимо от тиков, но не при работе в тестере.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ

Конечно же в тестере нужно чтоб работало. Прогнал советника допустим за неделю, получил 5дней*24*60  записей средств. И можно построить реальный график. Прогнал по нескольким парам, суммировал построил мультивалютный график. Вот что нужно. Я блин столько провозился а оказывается этот грёбаный таймер в тестере не работает...вот блин.

Share this post


Link to post
Share on other sites
Ugar68
1 час назад, AntZ сказал:

Конечно же в тестере нужно чтоб работало. Прогнал советника допустим за неделю, получил 5дней*24*60  записей средств. И можно построить реальный график. Прогнал по нескольким парам, суммировал построил мультивалютный график. Вот что нужно. Я блин столько провозился а оказывается этот грёбаный таймер в тестере не работает...вот блин.

Тестер, на модели все тики, работает по тиками. При том что не по реальным, а смоделированным. То есть тики врутри минутного бара выдуманы тестером. Реальны только бары High, Low, Open, Close. В Вашем случае, если надо писать средства в файл каждую минуту, то лучше это делать при открытии минутного бара. Если есть минутный бар, то и запись не будет пропущена.

Это должно быть в OnTick.

static datetime prev_time0;

datetime time0=iTime(NULL,1,0);

if(prev_time0!=time0)

{

//Здесь запись в файл

}

prev_time0=time;


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ

вот теперь всё записывается, осталось додумать чтоб иногда пропущенные без тиков минуты тоже записывались

 

if( Minute()>=time && S!=Minute())
{
FileWriteString(h,Month()+";"+Day()+";"+Hour()+";"+Minute()+";"+(string)AccountEquity()+"\n");
//Alert ("-------------------------ТЕСТ");
S=Minute();
time=Minute()+interval;  //периодичность записи, по умолчанию 1 мин.
if(time==60){time=0;}
}

Share this post


Link to post
Share on other sites
AntZ

)))) Ugar68  спасибо, я тож как раз что-то кривенькое напридумывал

Share this post


Link to post
Share on other sites
AntZ

Ugar68, в твоей версии нет "защиты" от повторной записи на одной и той же минуте

2019-01-13_16-58-33.png

Share this post


Link to post
Share on other sites
Ugar68

Так не должно быть в тестере. Должно быть только одна запись за минутный бар. В работе на счёте может быть повтор при инициализации графика с советником. Ничего не перепутали? Ничего не забыли?

prev_time0  должна быть статической

В конце должно быть запоминание времени минутного бара. prev_time0=time;


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ

точно пишет повторы, записал всё верно 

2019-01-13_17-11-24.png

Share this post


Link to post
Share on other sites
Ugar68

Я ошибся в имени переменной в последней строке

prev_time0=time0; 


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntZ

да, теперь всё отлично, спасибо,  удобно что писать можно согласно таймфреймам, каждые 5, 15 минут если требуется "позжатей" график.   

Share this post


Link to post
Share on other sites
AntFX
11.01.2019 в 16:43, AntZ сказал:

Здравствуйте. Существует ли реально работающий компилятор кода   mql4  в  mql5 ?

Вот ещё советую глянуть (сам не смотрел)


1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×