Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Как то так
Код: |
....
// попытка сделать запоминание диапазона в момент входа и выход по 161.8%. Неудачная. Считает неверно, перерисовывает после новых сигналов
B1 = (BC1 OR BC4 OR BC3) AND BC2 AND TM4;
S1 = (SC1 OR SC3 OR SC4) AND SC2 AND TM4;
H1 = ValueWhen(B1, NewHigh, n = 1);
L1 = ValueWhen(S1, NewLow, n = 1);
Delta = H1-L1;
D161H = L1 + Delta*1.618;
D161S = H1 - Delta*1.618;
Lout3 = Cross (H, D161H);
Sout3 = Cross (D161S, L);
pos = 0
for(i = 0; i < BarCount; i++)
{
if(pos == 0)
{
if(B1[i])
{
Buy[i] = 1;
pos = 1;
D161Hc = D161H[i];
D161Sc = D161S[i];
}
else if(S1[i])
{
Short[i] = 1;
pos = -1;
D161Hc = D161H[i];
D161Sc = D161S[i];
}
}
else if(pos == 1)
{
if(тут условия выхода в виде Lout1[i] OR Lout2[i] OR Lout4[i] OR TM[i] OR H[i] >= D161Hc)
{
Sell[i] = 1;
pos = 0;
SellPrice[i] = ....; // цена выхода
}
}
else if(pos == -1)
{
if(тут условия выхода в виде Sout1[i] OR Sout2[i] OR Sout4[i] OR TM[i] OR L[i] <= D161Sc)
{
Cover[i] = 1;
pos = 0;
CoverPrice[i] = ....; // цена выхода
}
}
}
Plot( NewHigh, "NewHigh", colorRed, 32);
Plot( NewLow, "NewLow", colorGreen, 32);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Вот так надо прописать?
Код: |
....
else if(pos == 1)
{
if(Lout1[i] OR Lout2[i] OR Lout4[i] OR TM[i] OR H[i] >= D161Hc)
{
Sell[i] = 1;
pos = 0;
SellPrice[i] = Close; // цена выхода
}
}
else if(pos == -1)
{
if(Sout1[i] OR Sout2[i] OR Sout4[i] OR TM[i] OR L[i] <= D161Sc)
{
Cover[i] = 1;
pos = 0;
CoverPrice[i] = Close; // цена выхода
}
}
}
Plot( NewHigh, "NewHigh", colorRed, 32);
Plot( NewLow, "NewLow", colorGreen, 32);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да.
Только с ценой сделки не понятно. Почему по Close? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Да.
Только с ценой сделки не понятно. Почему по Close? |
Я тоже не понял. И система отказалась понимать. Убрал вообще строки CoverPrice[i] = Close; // цена выхода и Sell... Заработало.
А что там должно быть написано заместо многоточия? Я не понял. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вообще говоря если выходишь по уровню, то и должен быть написан уровень (цена) по которой выходишь. А не работало потому, что надо было писать C[i] |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Вообще говоря если выходишь по уровню, то и должен быть написан уровень (цена) по которой выходишь. А не работало потому, что надо было писать C[i] |
А, ну я тут по системе просто по цене закрытия выхожу.
Тем не менее, что-то частенько скрипт отрабатывает неверно. К примеру, на картинке. Видим вход в районе 11 часов. Натягиваем фибу на экстремумы, существующие в момент входа. Уровень 161.8% на 144228. Как можно видеть, выход произошел гораздо раньше.
Да, там есть еще условия выхода, а именно: if(Lout2[i] OR Lout4[i] OR TM[i] OR H[i] >= D161Hc)
Но,
Lout2 = Cross (NewLow, C);
Lout4 = Cross (300, CCIT);
В данном случае лой не пересекается, ССИ также не пересекает 300. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем так.
Не смотря на то, что код я написал, логики того, что именно надо я до конца не понял.
Что могу посоветовать.
Найди место где не правильно выходит и постарайся выяснить по какому сигналу выходит.
Убирай поочередно из условия выхода вот эти условия
Код: |
Lout1[i] OR Lout2[i] OR Lout4[i] OR TM[i] OR H[i] >= D161Hc
|
Таким макаром сначала найдешь что именно косячит, а уж потом будем разбираться что не так. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
Может быть уже будет лишним, но для тестирования системы может подойти StaticVarSet(). Соотвественно, раз эта функция имеет дело с константой, то и прежде чем проводить проверку на выход по стопу, следует массив цены приводить к константе? Это уже видимо из VarGet()?
Хотя... Может быть получится взять массив от этой константы? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
StaticVarSet() это не обязательно константа. Это статическая переменная. Может быть и константой и массивом. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
GREEN_X5
Зарегистрирован: 13.04.2012
Сообщения: 136
|
000 писал(а): |
StaticVarSet() это не обязательно константа. Это статическая переменная. Может быть и константой и массивом. |
Если это так, как обратиться к определенному элементу массива? Вроде такого?
StaticVarGet("Var"[1]) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Может быть можно и так. Наверняка можно так.
Код: |
qqq = StaticVarGet("Var");
www = qqq[1]; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
GREEN_X5
Зарегистрирован: 13.04.2012
Сообщения: 136
|
000 писал(а): |
Может быть можно и так. Наверняка можно так.
Код: |
qqq = StaticVarGet("Var");
www = qqq[1]; |
|
Как я написал - нельзя. Да, тоже через Temp переменную обращаюсь, по козьи конечно это .. ))
Код: |
temp=StaticVarGet("Var");
temp[barecount-5]=100;
StaticVarSet("Var",temp); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|