Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А там есть Смартовский плагин к Ами? Именно не просто смартовский а для Ами. Подумал, что в принципе наверное плагин может активировать AFL код.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
ООО, помогите. Нифига не получается читать инфу из файла. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
/////////////////////////////////////////////////////////////////////////////////////////////
// КОД ЧТЕНИЯ ФАЙЛА ОТКРЫТЫХ ПОЗИЦИЙ 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
|
Нее. Давай образец файла, и говори что из него надо прочитать |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
Файл списка открытых позиций
Файл списка открытых позиций называется 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
|
А если поза потом закрывается, то строка удаляется или дописывается новая?
Если новая дописывается, то в начало или в конец файла? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
В инструкции не сказано, что происходит в случае закрытия позиции. Я уточню у специалистов. Мне кажется, что просто признак Open position: исчезает или меняется. Каждая новая позиция добавляется в начало файла в виде новой строки.
Никак не соображу, как сюда файл Word Pad вставить. С таблицами. А если я путь укажу, это значит каждый будет ко мне в комп лазить ??? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
А нам и не важно. Что происходит. Нам важно, что если признак "Open position:" есть, значит открытая позиция есть. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
|
Посмотреть профиль Отправить личное сообщение |
|
Старый Пень
Зарегистрирован: 22.02.2012
Сообщения: 41
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если хочешь что либо прикрепить, то просто пожми это архиватором zip.
Дай ссылку на мануал или хорошее описание плагина. Не хочется там всю ветку форума читать.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Мляяя. Почитал ветку немного. Шо за нах.... Нет слов. Кто сказал, что Ами не может работать с позициями. У меня же работает... Просто надо проконсультироваться было и написать нормальный плагин. Там делов не много....
В общем узнавай что происходит со строкой позиции когда поза закрывается... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
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
|
Нифига не понимаю, как сюда файл WordPad вставить... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если вин7, то правой кнопкой в окне папки. Там создать -> сдатая зип папка/ Получится архив зип. В него запихай перетаскиванием файл который хочешь прикрепит на форум и потом прикрепляй эту зип папку. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|