Автор |
Сообщение |
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
В этой ветке http://amisite.ru/phpBB2/viewtopic.php?p=2580#2580
поднимался разговор о правильности/неправильности использования переменных в циклах.
В связи с этим я написал код для простого сигнала с фикс стопом и таргетом. При этом юзал тока массивы (вроде бы )
прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем вроде все прально.
Сперва думал, что есть логическая ошибка. Вход в покупку на открытии, а срабатывание стопов на этом баре казалось не проверено. Потом посмотрел внимательнее, все ОК. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BabyBear
Советник
Зарегистрирован: 10.12.2008
Сообщения: 53
|
ID писал(а): |
прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК. |
1. Я не вижу, где учтен спред.
2. К такому коду желательно иметь пояснение , по какой цене предполагается открываться.
3. про BuyPrice вижу только , что она ноль. |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
BabyBear писал(а): |
3. про BuyPrice вижу только , что она ноль. |
Это не ноль, это Open |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
BabyBear писал(а): |
ID писал(а): |
прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК. |
1. Я не вижу, где учтен спред.
2. К такому коду желательно иметь пояснение , по какой цене предполагается открываться.
3. про BuyPrice вижу только , что она ноль. |
1. Код спред не учитывает, поскольку у меня спреды берутся из инклуда, а если код вам проверять, то ненужного геморра много.
2. Открываемся по чесному - по Открытию; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
BabyBear
Советник
Зарегистрирован: 10.12.2008
Сообщения: 53
|
Еще, я бы начинал цикл с 41. там все МА уже будут сосчитаны.
Врядли результат изменится, но лучше перестраховаться в таких случаях. На потом. |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
то есть
for(i=1;i<barcount;i++)
меняем на
for(i=41;i<barcount;i++)??? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Вопрос:
а можно использовать цикл в цикле? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
ID писал(а): |
Вопрос:
а можно использовать цикл в цикле? |
Конечно можно. Только очень часто такая конструкция тормозит безбожно из-за того, что расчетов много. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
вопрос:
почему я могу писать:
а писать так
Код: |
my_dayofweek[0]= DayOfWeek(); |
не могу - Ами ругается??? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
ID писал(а): |
вопрос:
почему я могу писать:
а писать так
Код: |
my_dayofweek[0]= DayOfWeek(); |
не могу - Ами ругается??? |
Потому, что DayOfWeek() это массив и никак нельзя запихать все его члены в одно число. Напиши
Код: |
my_dayofweek = DayOfWeek();
|
и потом используй my_dayofweek[0] если есть необходимость. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Олег всю голову уже сломал с циклами,не понимаю их нихрена, подскажи как реализоват, расчет линий ведется от точки count1 на которой исполняется условие, это как я понимаю нужно реализовать через цикл, а как не знаю
Cond1 = d1<g1 AND H>g1;
count1 = BarsSince(Signal1);
g = Ref(с,-1)-LLV(Ref(H-L,-1),count2);
d = EMA(g,3);
после чего начинает отрисовываться следующая линия
Cond2 = d1<g1 AND H>g1;
count2 = BarsSince(Signal2);
g1 = Ref(с,-1)+LLV(Ref(H-L,-1),count2);
d1 = EMA(g,3);
P = iif(d1==1,d1,d);
Plot(P,"P", 6,1); |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Напиши подробнее. Откуда и куда линия, прямая или нет, горизонтальная или наклонная и т.п. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Напиши подробнее. Откуда и куда линия, прямая или нет, горизонтальная или наклонная и т.п. |
2 кривые (которые которые не могут существавать одновременно) точкой начала расчета и отрисовки первой линии является условие когда вторая линия становиться выше своей средняй и хая,
Cond1 = d1<g1 AND H>g1;
count1 = BarsSince(Signal1);
g = Ref(с,-1)-LLV(Ref(H-L,-1),count2);
d = EMA(g,3);
После того как первая линия становиться ниже средней и лоу, начинается отрисовка второй лини.
Cond2 = d<g AND H>g;
count2 = BarsSince(Signal2);
g1 = Ref(с,-1)+LLV(Ref(H-L,-1),count2);
d1 = EMA(g,3);
По окончании цикла, добовляем
P = iif(d1==1,d1,d);
Plot(P,"P", 6,1);
и получаем линию типа параболика. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Блин. Времени нет. Постараюсь в понедельник ответить. Раньше не получится |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|