Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Не удается осуществить запись tri-файла Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Пт Май 15, 2009 1:41 am Ответить с цитатой Вернуться к началу

Уважаемые товарищи, использовал все 3 варианта AFL-кода записи в файл, безусловно и сам оптимизировал до упрощения. Однако результат крайне странный:
1. то напишет одну запись сделки в tri-файл и прервется - Missing arguments;
2. то напишет несколько записей и прервется в условиях вызова функций записи типа на текст: if (buy) Make_and_save (...) - missing arguments fclose (fh), type mismatch (buy) is boolean variable ит.д.
По личным ощущениям - все упирается в какой-то нюанс в чтении-записи файла.
Известно ли разница между fopen (..."w") и fopen ("a") - если нет файла он должен быть создан с собщением об ошибке? в чем разница между этими функциями??
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Май 15, 2009 8:02 am Ответить с цитатой Вернуться к началу

"w" для записи. Если файл открыт для записи, то при записи его содержимое полностю перепишется
"a" это для дополнения. Если открыт для дополнения, то при записи новая информация добавится к старой.

У меня подозрение, что косяки от того, что файл заблокирован для редактирования ( например уже открыт )

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Пт Май 15, 2009 9:10 am Ответить с цитатой Вернуться к началу

Попробовал поочереди 3 варианта кода, представленных на сайте и у от автора 2004-го года - так файл даже никакой не создается , в действущий ничего не пишется.
Упростил до совершенства:

function Save_Tri_Action( straction )
{
fha = fopen( TriFileName, "a");
if ( fha )
{
fputs( straction, fha );
fclose ( fha );
}
}
Ни фига ))) - что-то пишется, но появляются выше описанные ошибки.
Неделю тренеровки и уже вышел к вам на сайт.
Что может быть не так?
Полностью переустановил AmiBroker - результат тот же, с базовыми 3-мя примерами и с выше приведенным упрощенным кодом.
Могут бы быть какие-лио установки Vista?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Май 15, 2009 11:32 pm Ответить с цитатой Вернуться к началу

Попробуй вот такой код в качестве индикатора
Код:

qq = Param("test", 0, 0, 8, 1);

function read() {
   fh = fopen( "test.test", "r");
   p = fgets( fh );
   fclose( fh );
   p = StrToNum(p);

   return p;
}
procedure write( q ) {
   fh = fopen( "test.test", "w");
   if( !fh ) {
      fh = fopen( "test.test", "w");
      fputs( NumToStr( 0 ), fh);
      fclose( fh );
   }
   fputs( NumToStr( q ), fh);
   fclose( fh ); 
}

write(qq);
Plot(read(), "test", colorRed);

Он создает файл test.test в папке куда установлен Ами и рисует линию соответствубщую цифре в этом файле. Цифру можно менять из параметров.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Май 15, 2009 11:33 pm Ответить с цитатой Вернуться к началу

А вот на счет Висты не подскажу. Я её в глаза не видел Smile

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Сб Май 16, 2009 12:31 am Ответить с цитатой Вернуться к началу

000 писал(а):
А вот на счет Висты не подскажу. Я её в глаза не видел Smile

Записан 0.000, красную линию нарисовал
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Май 16, 2009 12:48 am Ответить с цитатой Вернуться к началу

Погоняй, поменяй цифру из параметров (правой кнопкой на график и там Parameters).
Этот код осуществляет сначала запись цифры в файл а затем чтение из файла и вывод этой цифры.
Код написал именно потестировать запись в файл.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Сб Май 16, 2009 12:50 am Ответить с цитатой Вернуться к началу

000 писал(а):
Погоняй, поменяй цифру из параметров (правой кнопкой на график и там Parameters).
Этот код осуществляет сначала запись цифры в файл а затем чтение из файла и вывод этой цифры.
Код написал именно потестировать запись в файл.

Пишет, читает
Записал 6, 8,7 и т.д.
Прочитал блокнотом. Все идет без сбоев
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Май 16, 2009 12:55 am Ответить с цитатой Вернуться к началу

А почему при записи в tri ругается? Может tri заблокирован чем?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Сб Май 16, 2009 1:02 am Ответить с цитатой Вернуться к началу

000 писал(а):
А почему при записи в tri ругается? Может tri заблокирован чем?

Вот в чем вопрос!
Ничем и никак и не трогал ни Квик ничего.

Попробую еще раз с нуля.
Могут ли к три-файлу одновременно обращаться несколько систем, работающих в разных окнах??
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Май 16, 2009 1:22 am Ответить с цитатой Вернуться к началу

Alexei писал(а):

Могут ли к три-файлу одновременно обращаться несколько систем, работающих в разных окнах??

Это не знаю.
Я вообще сторонник робота работающего из АА. А в АА может быть только один код и он, разумеется, не может одновременно несколько раз обращаться к tri

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Сб Май 16, 2009 8:14 am Ответить с цитатой Вернуться к началу

Alexei писал(а):
000 писал(а):
А почему при записи в tri ругается? Может tri заблокирован чем?

Вот в чем вопрос!
Ничем и никак и не трогал ни Квик ничего.

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


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


К примеру в первом индюке такой набор цыфр

Код:
 if(Buy)
   {
     price = Close[BarCount-1] + Otstup;
      makeandsave("B", 1, price);
   }
   if(Sell)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 2, price);
   }
   if(Short)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 3, price);
   }
   if(Cover)
   {
      price = Close[BarCount-1] + Otstup;
      makeandsave("B", 4, price);
   }


такой во втором

Код:
 if(Buy)
   {
     price = Close[BarCount-1] + Otstup;
      makeandsave("B", 5, price);
   }
   if(Sell)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 6, price);
   }
   if(Short)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 7, price);
   }
   if(Cover)
   {
      price = Close[BarCount-1] + Otstup;
      makeandsave("B", 8, price);
   } 

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Сб Май 16, 2009 11:05 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Alexei писал(а):

Могут ли к три-файлу одновременно обращаться несколько систем, работающих в разных окнах??

Это не знаю.
Я вообще сторонник робота работающего из АА. А в АА может быть только один код и он, разумеется, не может одновременно несколько раз обращаться к tri


Тогда два вопроса:
1. А как АА реализует стопы - в buy/sell/short/cover они отражаются?
2. Во время включенного АА, написанный мной интерфейс принудительного закрытия/открытия позиции будет работать?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Май 16, 2009 11:29 pm Ответить с цитатой Вернуться к началу

Alexei писал(а):

Тогда два вопроса:
1. А как АА реализует стопы - в buy/sell/short/cover они отражаются?

Прочитай в хелпере про функцию Equity() Она и в АА и в индикаторе работает одинаково, а без неё стопы не будут работать ни там ни там.
Alexei писал(а):
2. Во время включенного АА, написанный мной интерфейс принудительного закрытия/открытия позиции будет работать?

Мне про него ничего не известно, но скорее всего будет. Работа кода в АА и в индикаторе практически идентична.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexei



Зарегистрирован: 15.05.2009
Сообщения: 17

СообщениеДобавлено: Вс Май 17, 2009 3:25 am Ответить с цитатой Вернуться к началу

000 писал(а):
Alexei писал(а):

Тогда два вопроса:
1. А как АА реализует стопы - в buy/sell/short/cover они отражаются?

Прочитай в хелпере про функцию Equity() Она и в АА и в индикаторе работает одинаково, а без неё стопы не будут работать ни там ни там.
Alexei писал(а):
2. Во время включенного АА, написанный мной интерфейс принудительного закрытия/открытия позиции будет работать?

Мне про него ничего не известно, но скорее всего будет. Работа кода в АА и в индикаторе практически идентична.


Спасибо за поддержку. Все пишет.
Могу сказать одно - очень капризная штука этот интерпретатор АМИ.
Ошибки выдаются не очевидно. Плюс, конечно, вызывают озабоченность отсылки по некоторым операторам к Википедиа switch - case, например.
Одну проблему решить не могу - как получить для Trans_ID секунды?
И Now () и Second () почему-то превращаются в 00 при переделке numstr ().
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen