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


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

СообщениеДобавлено: Пт Июн 22, 2012 8:06 pm Ответить с цитатой Вернуться к началу

А там есть Смартовский плагин к Ами? Именно не просто смартовский а для Ами. Подумал, что в принципе наверное плагин может активировать AFL код....

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



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

СообщениеДобавлено: Ср Июн 27, 2012 1:12 pm Ответить с цитатой Вернуться к началу

ООО, помогите. Нифига не получается читать инфу из файла.
Посмотреть профиль Отправить личное сообщение
Старый Пень



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

СообщениеДобавлено: Ср Июн 27, 2012 1:13 pm Ответить с цитатой Вернуться к началу

/////////////////////////////////////////////////////////////////////////////////////////////
// КОД ЧТЕНИЯ ФАЙЛА ОТКРЫТЫХ ПОЗИЦИЙ OpenPosStatement.dat
// Open position: BP0001-RF-01, SBRF-6.12_FT, -1, 8264, 0 Так выглядит файл открытых позиций
/////////////////////////////////////////////////////////////////////////////////////////////

OpenPosStatement="C:\\ProgramFiles(x86)\\AmiBroker\\Notes\\OpenPosStatement.dat";
file_open_pos = fopen( OpenPosStatement, "r" );
printf("ФАЙЛ OpenPosStatement ОТКРЫТ ДЛЯ ЧТЕНИЯ\n");
if (file_open_pos)
{
while (!feof(file_open_pos))
{
open_pos = fgets(file_open_pos); // вот так fgets читает файл OpenPosStatement.dat до конца
printf( fgets(file_open_pos)+"\n" );
Pos_Found = StrFind( fgets(file_open_pos),"Open position:"); //Если найдена, то возврашается "Open position:" если нет, то ноль
printf( Pos_Found+"\n" );
if(Pos_Found)
{
printf(Pos_Found+"\n");
Ticker_found = StrExtract( Pos_Found, 1 );
printf(Ticker_found+"\n");
Number_of_Lots = StrToNum(StrExtract( Pos_Found, 2 )); // Извлекаем количество лотов, переводим в числовой формат
printf(Number_of_Lots+"\n"); // Печатаем число лотов имеющейся открытой позиции
Weighted_price = StrToNum(StrExtract( Pos_Found, 3 )); // Извлекаем цену, переводим в числовой формат
printf(Weighted_price+"\n"); // Печатаем цену позиции
Open_exists = StaticVarSet("Open_exists",1);
Open_exists = IIf(Pos_Found == "Open position:",1,0); // Если поза открыта, то Open_exists = 1 если нет то Open_exists = 0
printf(Open_exists+"\n"); // Печатаем наличие открытой позиции
Pos_direction == IIf(Number_of_Lots>0,1,0); // Если поза открыта ЛОНГ то Pos_direction = 1 если ШОРТ то Pos_direction = 0
printf("ФАЙЛ OpenPosStatement ПРОЧИТАН И ЗАКРЫТ\n");

}
}
}
else
{
printf("ФАЙЛ НЕ ОТКРЫВАЕТСЯ \n");
}
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июн 27, 2012 7:39 pm Ответить с цитатой Вернуться к началу

Нее. Давай образец файла, и говори что из него надо прочитать

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



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

СообщениеДобавлено: Чт Июн 28, 2012 10:01 am Ответить с цитатой Вернуться к началу

Файл списка открытых позиций

Файл списка открытых позиций называется OpenPosStatement.dat и располагается в папке, указанной в настройках плагина (в приведенном примере – transactions). Эта папка размещается в папке программы AmiBroker. Каждая запись - строка, появляется если позиция открыта.

Пример записи файла открытых позиций:
Open position: BP0694-RF-02, SBRF-6.12_FT, -1, 8264, 0

Структура описания открытой позиции:

# поля Что содержит
1 Признак открытой позиции Open position:
2 Портфель, в котором открыта позиция BP0694-RF-02
3 Финансовый инструмент SBRF-6.12_FT
4 Объем позиции в лотах (контрактах).
Для коротких позиций – отрицательная величина. -1
5 Средневзвешенная цена позиции 8264
6 Рабочее поле 0

Пока непонятно, что содержит рабочее поле.

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


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

СообщениеДобавлено: Чт Июн 28, 2012 12:16 pm Ответить с цитатой Вернуться к началу

А если поза потом закрывается, то строка удаляется или дописывается новая?
Если новая дописывается, то в начало или в конец файла?

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



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

СообщениеДобавлено: Чт Июн 28, 2012 2:30 pm Ответить с цитатой Вернуться к началу

В инструкции не сказано, что происходит в случае закрытия позиции. Я уточню у специалистов. Мне кажется, что просто признак Open position: исчезает или меняется. Каждая новая позиция добавляется в начало файла в виде новой строки.

Никак не соображу, как сюда файл Word Pad вставить. С таблицами. А если я путь укажу, это значит каждый будет ко мне в комп лазить ???
Посмотреть профиль Отправить личное сообщение
Старый Пень



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

СообщениеДобавлено: Чт Июн 28, 2012 2:37 pm Ответить с цитатой Вернуться к началу

А нам и не важно. Что происходит. Нам важно, что если признак "Open position:" есть, значит открытая позиция есть.
Посмотреть профиль Отправить личное сообщение
Старый Пень



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

СообщениеДобавлено: Чт Июн 28, 2012 2:48 pm Ответить с цитатой Вернуться к началу

Ссылка на плагин.
Посмотреть профиль Отправить личное сообщение
Старый Пень



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

СообщениеДобавлено: Чт Июн 28, 2012 2:48 pm Ответить с цитатой Вернуться к началу

http://www.itinvest.ru/forum/index.php?showtopic=63382&st=380
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 28, 2012 5:15 pm Ответить с цитатой Вернуться к началу

Если хочешь что либо прикрепить, то просто пожми это архиватором zip.

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

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


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

СообщениеДобавлено: Чт Июн 28, 2012 5:37 pm Ответить с цитатой Вернуться к началу

Мляяя. Почитал ветку немного. Шо за нах.... Нет слов. Кто сказал, что Ами не может работать с позициями. У меня же работает... Просто надо проконсультироваться было и написать нормальный плагин. Там делов не много....

В общем узнавай что происходит со строкой позиции когда поза закрывается...

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



Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user

СообщениеДобавлено: Чт Июн 28, 2012 7:34 pm Ответить с цитатой Вернуться к началу

000 писал(а):

В общем узнавай что происходит со строкой позиции когда поза закрывается...

Если позиции нет, то файл пустой, но существует всегда. Я читаю так:
Код:

OpenPosStatement="C:/Program Files (x86)/AmiBroker/transactions/OpenPosStatement.dat";
Account="ST21422-RF-01";   // ваш счёт на бирже (RF-01 для FORTS, MS-01 для ММВБ)
procedure ReadopenPositions(){
   file_open_pos = fopen( OpenPosStatement, "r" );
   found=0;
   StaticVarSet("Number_of_Lots",0);// will return число лотов
   StaticVarSet("Weighted_price",0);// will return средневзвешенную цену
   Number_of_Lots=0;
   Weighted_price=0;
   if (file_open_pos) {
      while (!feof(file_open_pos)) {
         open_pos = fgets(file_open_pos); // вот так fgets читает файл OpenPosStatement.dat до конца
         if (StrFind(open_pos,FullName())>0 AND StrFind(open_pos, Account)>0)
         {
            StrFounded=open_pos; //нашли, сохранили для дальнейшей обработки(для выяснения какая поза, сколько)
            // пока предполагаем что запись одна, с одного счета - одно направление сделки
            found=1;
         }
      }
   }
      fclose(file_open_pos); //нашли, закрываем файл.
   if (found==1) {//переводим в числа открытые позиции
      StaticVarSet("Number_of_Lots",StrToNum(StrExtract( StrFounded, 2 )));// will return число лотов
      StaticVarSet("Weighted_price",StrToNum(StrExtract( StrFounded, 3 )));// will return средневзвешенную цену
   }
}

Посмотреть профиль Отправить личное сообщение
Старый Пень



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

СообщениеДобавлено: Чт Июн 28, 2012 9:18 pm Ответить с цитатой Вернуться к началу

Нифига не понимаю, как сюда файл WordPad вставить...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 28, 2012 9:23 pm Ответить с цитатой Вернуться к началу

Если вин7, то правой кнопкой в окне папки. Там создать -> сдатая зип папка/ Получится архив зип. В него запихай перетаскиванием файл который хочешь прикрепит на форум и потом прикрепляй эту зип папку.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen