Автор |
Сообщение |
Павел
Зарегистрирован: 28.07.2011
Сообщения: 6
|
Робот совершает сделки, но в файле замещает старые (перезаписывает),
как сделать чтоб робот сохранял историю в текстовом файле?
делаю так:
Otstup=50;
FileName = "C:/test.txt";
fh = fopen(filename, "w");
feof( fh );
if( fh )
if(Buy=True)
{
price = Close[BarCount-1] + Otstup;
fputs("BUY="+price+"\n",fh);
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Надо так:
Код: |
f = fopen(filename, "a"); |
|
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Павел
Зарегистрирован: 28.07.2011
Сообщения: 6
|
Да, так идут в файл, если загоняю в тестер, то сделки идут но пустые без сумм, как это исправить? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Нужно price преобразовать в тип "строка". Глянь функцию NumToStr() |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вставляешь в код вот такую процедуру.
Код: |
procedure Wr( w, q ) {
fh = fopen( "имя файла", "a");
fputs( w + "=" + NumToStr( q, 1.0, False ) + "\n", fh);
fclose( fh );
}
|
и потом в коде можно вызывать типа
В результате в файл запишется Buy=5 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Павел
Зарегистрирован: 28.07.2011
Сообщения: 6
|
За процедуру большое спасибо!
У меня маленько в другом проблема я хотел сделать так:
Когда наступает событие Buy в текстовый файл попадали данные покупка по такой цене, Sell продажа по такой цене.
Когда делаю условие if(Buy=True) Wr("buy=",Close[BarCount-1] + Otstup);
попадает в текст не все Buy и результаты в тестере изменяются, и в файл пишутся не все сделки. Может я не правильно отслеживаю(отлавливаю событие) на Buy? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну так Buy=True оно вообще странно что работает. Надо или так
if(Buy)
или так
if(Buy==True) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вообще можешь вот с этого робота
(сообщение Пт Июн 10, 2011 3:25)
много чего взять. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Павел
Зарегистрирован: 28.07.2011
Сообщения: 6
|
Спасибо за ответ!
Когда я ставлю if(Buy==True) -ошибка Error 6. Condition in IF, WHILE, FOR statements has to be Numeric or Boolean type. You can not use array here, please use [] (array subscript operator) to access array elements
Когда я ставлю if(Buy) - та же ошибка, может что то нужно включить или выключить? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Конечно нужно. По умолчанию Buy это массив, а функция if работает только с переменными. Для робота надо взять последнее значение массива LastValue(Buy) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|