Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Только написать свой вариант.
Я, к сожаленю, не знаю формулы и точно сказать не могу |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
dar
Зарегистрирован: 12.05.2009
Сообщения: 17
|
Для вычисления STDEV с переменным периодом написал вот такой вот код
P1=10;
period=100;
STD1=0;
for( i=period; i<BarCount; i++)
{
S0=0;
for( j=i-P1; j<i+1; j++)
{
S0=S0+(Close[j] - MA(Close[i], P1))*(Close[j] - MA(Close[i], P1));
}
STD1[i]=sqrt(S0/P1);
}
в строке
STD1[i]=sqrt(S0/P1);
выдает ошибку, не могу понять в чем дело? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ты путаешь массив и переменную
Нада как то так. Формулу расчета я не знаю, а искать не охота.
Код: |
P1=10;
period=100;
STD1=0;
Mov = MA(C, period);
for( i = period; i < BarCount; i++)
{
S0[i]=0;
for( j = i-P1; j < i+1; j++)
{
S0[i] = S0[i] + (Close[j] - Mov[i])*(Close[j] - Mov[i]);
}
STD1[i]=sqrt(S0[i]/P1);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
dar
Зарегистрирован: 12.05.2009
Сообщения: 17
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Вечно забываю функцию в АМИ, которая у дроби грохает числа после ЗПТ с нужной точностью.
Напомните плиз |
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
prec..... ВСПОМНИЛ! Сук.!
Млин... Ну вечно забываю |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Andrei72
Зарегистрирован: 03.07.2009
Сообщения: 3
Откуда: Санкт-Петербург
|
Помогите кто нибудь пожалуйста как написать чтобы на 15 минутках после срабатывания стоппрофита не генерились сигналы купить продать до конца этого дня Заранее спасибо |
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
в конце своего кода добавь это:
Код: |
Buy = ExRem(Sell,DateNum() != Ref(DateNum(),-1); |
может быть поможет, но не уверен. Это первое, что пришло в голову. Если не поможет отпиши здесь - твой вопрос я думаю легко решаем. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Andrei72
Зарегистрирован: 03.07.2009
Сообщения: 3
Откуда: Санкт-Петербург
|
Спасибо за ответ Код сигналы убирает но не только после стоппрофита но и после стоплосса и точки входа меняются вот код: _SECTION_BEGIN("Price");
SetPositionSize(2,4);//количество контрактов
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
col = IIf( Close > Ref( Close, -1 ), colorGreen, colorRed );
Plot( Close, "Price", col, styleBar| styleThick );Graph0BarColor = IIf( Close > Ref( Close, -1 ), colorGreen, colorRed );
//
Opt1=Optimize("Opt1",24,10,60,1);//
Opt2=Optimize("Opt2",700,500,2000,100);//
Opt3=Optimize("Opt3",1300,1000,2000,100);//
//
HL=Ref(HHV(H,Opt1),-1);
LL=Ref(LLV(L,Opt1),-1);
Plot(HL,"HL",10,8);
Plot(LL,"LL",11,8);
//
BuyPrice=C;
SellPrice =C ;
ShortPrice= C;
CoverPrice= C ;
//
CondBuy = HL > Open AND HL < High ;
CondSell = Cross(LL,C);
//
Buy = CondBuy;
Sell = CondSell;
Buy = ExRem(Sell,DateNum() != Ref(DateNum(),-1));
ApplyStop(0,2,Opt2,1,False,0);//стоп
ApplyStop(1,2,Opt3,1,False,0);// профит
Equity(1);
//
PlotShapes(IIf(Buy,shapeUpArrow,0),10,0,L,-104);
PlotShapes(IIf(Sell,shapeDownArrow,0),9,0,H,-24);
PlotShapes(IIf(Sell==2, shapeSmallSquare, shapeNone), 10, 0, (H+L+C+O)/4, Offset=0);//Отрисовка стоплосса после сигнала Buy
PlotShapes(IIf(Sell==3, shapeSmallDownTriangle, shapeNone), 10, 0, (H+L+C+O)/4, Offset=-50);
// Отрисовка названия сделки и цены закрытия бара
for( i = 0; i < BarCount; i++ )
{
if( Buy[i]==1 ) PlotText("Long"+ "\n " +BuyPrice[i] , i, L[i]/1.040, 6 );
if( Sell[i]==1 ) PlotText("ExitLong"+ "\n " + SellPrice[i], i, H[ i ]*1.035, 11);
if( Sell[i]==2 ) PlotText("StopLoss"+ "\n " + SellPrice[i], i, H[ i ]*1.015, 4);
}
//
AlertIf( Buy, "SOUND C:\\Windows\\Media\\alarm2.wav", "Audio alert", 3 );//Звуковой сигнал
AlertIf( Sell, "SOUND C:\\Windows\\Media\\malfound.wav", "Audio alert", 3 );//Звуковой сигнал
AlertIf( Sell==2, "SOUND C:\\Windows\\Media\\malfound.wav", "Audio alert", 3 );//Звуковой сигнал
_SECTION_END(); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Andrei72
Зарегистрирован: 03.07.2009
Сообщения: 3
Откуда: Санкт-Петербург
|
Спасибо вопрос снимается Buy = ExRem(Buy,DateNum() != Ref(DateNum(),-1)); все работает |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Как можно зафиксировать на весь день High & Low первого часа?
Уровни держать весь день ? |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
а фрейм какой? Часовой или меньше?
Просто универсальный код (для любого фрейма) писать сложнее. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
000 писал(а): |
а фрейм какой? Часовой или меньше?
Просто универсальный код (для любого фрейма) писать сложнее. |
Для 15 мин например. Хотя-бы какой подход? |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Подход такой.
1. Переключаешься на часовой фрейм (Функция TimeFrameSet())
2. Находишь первый бар в начале дня
Код: |
BegDay = Day() != Ref(Day(), -1);
|
3. Берешь его мин/макс
Код: |
HourMax = ValueWhen(BegDay, H);
HourMin = ValueWhen(BegDay, L);
|
4. Переключаешься обратно на базовый фрейм. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sas55
Зарегистрирован: 15.03.2009
Сообщения: 61
Откуда: Омск
|
добрый день
подскажите пжл
есть условие
BUY=CROSS(H,REF(Y,-1)) OR (H>ref(Y,-1) and Hour() !=ref(Hour(),-1));
как правильно прописать покупку не начала часа ,а через 35 минут [/b] |
_________________ "Если мы выиграем на финансовом фронте, то мы выиграем всё" В.И.Ленин |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|