Для просмотра бюллетеня СМЕ для EURUSD достаточно перейти по
ссылке:
Простым копипастом, т.е. нажатием клавиш «CTRL+A» и «CTRL+С» копируем данные бюллетеня.
Затем в папке Files терминала создаем файл CME.TXT и жмем «CTRL+V». Сохраняем и закрываем файл.
Алгоритм.
Входные переменные будут такие:
extern string call = "SEP15 EURO FX CALL";
extern string put = "SEP15 EURO FX PUT";
Файл открываем с помощью функции:
int h=FileOpen("cme.txt",FILE_READ|FILE_TXT,'\n');
Пока не достигнут конец файла, читаем его построчно и строим уровни:
//--- прочитаем данные из файла
while(!FileIsEnding(h))
{
//--- прочитаем строку
str=FileReadString(h,str_size);
...
//--- закроем файл
FileClose(h);
}
}
Для построения уровней CALL осуществляем поиск подстроки «SEP15 EURO FX CALL»
//--- если есть подстрока call
if(StringFind(str,call,0)>0)
...
Для построения уровней PUT осуществляем поиск подстроки «SEP15 EURO FX PUT»
//--- если есть подстрока put
if(StringFind(str,put,0)>0)
...
Страйк читаем следующим образом:
//читаем подстроку со страйком
strike=StringSubstr(str,0,4);
Премию так:
//читаем подстроку с премией
prem=StringSubstr(str,27,5);
С помощью следующих функций строим сами уровни и выводим на экран необходимый текст.
Уровни:
void PutHLine(double price,const int width,const ENUM_LINE_STYLE style,const color clr)
{
const string name="HLine";
ObjectCreate(0,name,OBJ_HLINE,0,0,price);
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии
ObjectSetInteger(0,name,OBJPROP_STYLE,style);
//--- установим толщину линии
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
}
Текст:
void PutText(const string text,const string font,const int font_size,double price,datetime time,const ENUM_ANCHOR_POINT anchor,const color clr)
{
const string name="Text"+TimeToStr(TimeCurrent());
//--- создадим объект "Текст"
ObjectCreate(0,name,OBJ_TEXT,0,time,price);
//--- установим текст
ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
ObjectSetString(0,name,OBJPROP_FONT,font);
//--- установим размер шрифта
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,font_size);
//--- установим способ привязки
ObjectSetInteger(0,name,OBJPROP_ANCHOR,anchor);
//--- установим цвет
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
}
Для наглядности необходимые переменные можно вывести на экран:
Все необходимые функции у нас есть, а расчет уровня можно произвести следующим образом:
PutHLine(StringToDouble(strike)/1000+StringToDouble(prem)*0.001,2,STYLE_SOLID,Red);
П.С. Окончательный вариант скрипта или индикатора у каждого будет свой
![:D](http://opentraders.ru/templates/skin/g6h/images/smilies/003.gif)
.
Комментарии (2)
Тем более, что в субботу мне скинула её последнюю версию. Думаю, скоро и топик появится или обновится по этому поводу.
27 Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..
35 AM2 Автор Сообщений: 16441 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий