Отличный советник в бэктесте! - страница 115

 
tururo:
Файл перезаписывается каждый раз, когда вы его открываете. Одно из решений - открыть файл в функции init() и закрыть его в deinit()

поэтому я сделал вот что...

int init()

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');//это единственное место в коде, где я использую FileOpen() Я отключил все остальные.

return(0);

}

int deinit()

{

FileClose(handle);

return(0);

}

и в коде, когда я хочу добавить что-то к нему, я сделал следующее...

FileWrite(handle, "SellPossibilityMid:", SellPossibilityMid);

FileWrite(handle, "BuyPossibilityMid:", BuyPossibilityMid);

и я получаю сообщение об ошибке "открыто слишком много файлов".

 

bool startfileopen = true;

int init()

{

if(startfileopen)

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

startfileopen = false;

}

похоже, это решило проблему.

но он все еще показывает только одну запись в файле, часть которой усечена...

Order Open Time: ;1160137278

SellPossibilityMid*SellPossibilityQuality:;0.00190286

BuyPossibilityMid*BuyPossibilityQuality:;0.00132571

UndefinedPossibilityMid*UndefinedPossibilityQuality:;0.00365143

UndefinedSucPossibilityQuality:;9

SellSucPossibilityQuality:;9

BuySucPossibilityQuality:;7

UndefinedPossibilityQuality:;18

SellPossibilityQuality:;9

BuyPossibilityQuality:;8

UndefinedSucPossibilityMid:;0.00074444

SellSucPossibilityMid:;0.00082222

BuySucPossibilityMid:;0.0008

UndefinedPossibilityMid:;0.00020286

SellPossibilityMid:;0.00021143

BuyPossibilityMid:;0.00016571

ng Short OrderTicket: ;24; Opened @: ;1.2685; Closed @: ;1.2677; Order Open Time: ;1160121599

 

Это может помочь

Здравствуйте, Aaragorn, вы проделали большую работу над CT, у меня есть один E.A., который, как я думаю, делает что-то похожее на то, что вы делаете, может быть, есть способ включить его в CT. Я думаю, что он собирает данные о тиках в файл csv.

с уважением,

mrtools

 

У меня есть друг-программист, который сказал мне забыть про init() deinit() и изменить, когда я вызываю его на

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE|FILE_READ,';');

Я должен оставить это на некоторое время, я вернусь позже. Надеюсь, dudeworks сможет заставить его работать. Я просто пока не знаю, как работать с файлами.

 
mrtools:
Здравствуйте Aaragorn, отличная работа, которую вы делаете над CT, у меня есть один E.A., который я думаю делает что-то похожее на то, что вы делаете, может быть есть способ включить его в CT. Я думаю, что он собирает данные о тиках в файл csv.

regards,

mrtools

Хорошо, спасибо! Это интересно, видеть другой код, который работает, помогает, я должен уйти ненадолго, но я вернусь.

 

Ошибка недействительной ручки

Aaragorn, этому эксперту нужен внешний источник (я думаю), чтобы либо собрать данные, либо распространить их для торговли E.A., которого, к сожалению, у меня нет, и я понятия не имею, как его создать, поэтому эксперт не будет торговать, просто выдает сообщение об ошибке "invalid handle -1 in file read number", просто подумал, что код может помочь.

с уважением,

mrtools

 
mrtools:
Aaragorn, этому эксперту нужен внешний источник (я думаю), чтобы либо собрать данные, либо распространить их для торговли E.A., которого, к сожалению, у меня нет, и я понятия не имею, как его создать, поэтому эксперт не будет торговать просто выдает сообщение об ошибке "invalid handle -1 in file read number", просто подумал, что код может помочь.

с уважением

mrtools

Спасибо, я ценю вашу поддержку.

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

затем он открывает файл, чтобы прочитать то, что он написал.

Проблема заключается в том, что когда я хочу добавить что-то еще в файл, не удаляя и не перезаписывая то, что уже записано, другими словами, добавляя новые данные в конец файла...

Мне нужен пример того, как это сделать.

 

Может ли кто-нибудь научить меня, как правильно использовать функции хранения и вызова файлов?

Я просмотрел эту документацию...

int FileOpen( string filename, int mode, int delimiter=';')

Opens file for input and/or output. Returns a file handle for the opened file or -1 (if the function fails). To get the detailed error information, call GetLastError() function.

Notes: Files can only be opened in the terminal_directory\experts\files folder (terminal_directory\tester\files if for expert testing) or in its subfolders.

FILE_BIN and FILE_CSV modes cannot be used simultaneously.

If FILE_WRITE does not combine with FILE_READ, a zero-length file will be opened. If even the file containd some data, they will be deleted. If there is a need to add data to an existing file, it must be opened using combination of FILE_READ | FILE_WRITE.

If FILE_READ does not combine with FILE_WRITE, the file will be opened only if it already exists. If the file does not exist, it can be created using the FILE_WRITE mode.

No more than 32 files can be opened within an executable module simultaneously. Handles of files opened in the same module cannot be passed to other modules (libraries).

Parameters:

filename - Filename.

mode - Opening mode. It can be one or combination of values: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.

delimiter - Delimiter character for csv files. By default, the ';' symbol applies.

Sample:

int handle;

handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');

if(handle<1)

{

Print("File my_data.dat not found, the last error is ", GetLastError());

return(false);

}

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

http://www.metatrader.info/node/142

 
mrtools:
Aaragorn, этому эксперту нужен внешний источник (я думаю), чтобы либо собрать данные, либо распространить их для торговли E.A., которого, к сожалению, у меня нет и я понятия не имею, как его создать, поэтому эксперт не будет торговать, просто выдает сообщение об ошибке "invalid handle -1 in file read number", просто подумал, что код может помочь.

с уважением

mrtools

Спасибо за этот фрагмент кода. Я посмотрел на него и вижу, что он создает и читает файлы. Я не вижу, чтобы он добавлял что-либо в конец уже созданного файла. Может быть, это так, и я просто не вижу, а может быть, он этого не делает, и смотреть не на что. Я хотел бы знать кусок кода, который, как мы знаем, добавляет данные в конец, чтобы я мог увидеть, как он это делает.

 

CT не работает

Я прочитал эту тему от начала до конца, пытаясь найти решение У меня есть версия Cyberia Trader1.85g jpy.mq4.

Cyberia Trader1.85g jpy.mq4 версия Я загрузил его и имею лицо, но у меня нет никаких ордеров вообще. Я использую пару USD/CHF на 30mins. Отсутствие ордеров делает очень трудным любое форвард тестирование. система работает уже 4 дня и все еще нет ордеров.

Помощь была бы очень кстати, спасибо.

спасибо

Бено

Причина обращения: