Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Ликбез по циклам Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Пн Дек 29, 2008 5:25 am Ответить с цитатой Вернуться к началу

В этой ветке http://amisite.ru/phpBB2/viewtopic.php?p=2580#2580
поднимался разговор о правильности/неправильности использования переменных в циклах.

В связи с этим я написал код для простого сигнала с фикс стопом и таргетом. При этом юзал тока массивы (вроде бы Very Happy )

прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Дек 29, 2008 8:55 am Ответить с цитатой Вернуться к началу

В общем вроде все прально.
Сперва думал, что есть логическая ошибка. Вход в покупку на открытии, а срабатывание стопов на этом баре казалось не проверено. Потом посмотрел внимательнее, все ОК. Smile

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
BabyBear
Советник


Зарегистрирован: 10.12.2008
Сообщения: 53

СообщениеДобавлено: Пн Дек 29, 2008 9:35 am Ответить с цитатой Вернуться к началу

ID писал(а):
прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК.

1. Я не вижу, где учтен спред.
2. К такому коду желательно иметь пояснение , по какой цене предполагается открываться.
3. про BuyPrice вижу только , что она ноль.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Дек 29, 2008 9:59 am Ответить с цитатой Вернуться к началу

BabyBear писал(а):

3. про BuyPrice вижу только , что она ноль.

Это не ноль, это Open

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Пн Дек 29, 2008 10:08 am Ответить с цитатой Вернуться к началу

BabyBear писал(а):
ID писал(а):
прошу 000 или BabyBear проверить мой код на наличие ошибок. Я его проверил, вроде все ОК.

1. Я не вижу, где учтен спред.
2. К такому коду желательно иметь пояснение , по какой цене предполагается открываться.
3. про BuyPrice вижу только , что она ноль.


1. Код спред не учитывает, поскольку у меня спреды берутся из инклуда, а если код вам проверять, то ненужного геморра много.
2. Открываемся по чесному - по Открытию;
Посмотреть профиль Отправить личное сообщение
BabyBear
Советник


Зарегистрирован: 10.12.2008
Сообщения: 53

СообщениеДобавлено: Пн Дек 29, 2008 10:08 am Ответить с цитатой Вернуться к началу

Еще, я бы начинал цикл с 41. там все МА уже будут сосчитаны.
Врядли результат изменится, но лучше перестраховаться в таких случаях. На потом.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Пн Дек 29, 2008 11:57 am Ответить с цитатой Вернуться к началу

то есть
for(i=1;i<barcount;i++)
меняем на
for(i=41;i<barcount;i++)???
Посмотреть профиль Отправить личное сообщение
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Пн Дек 29, 2008 12:13 pm Ответить с цитатой Вернуться к началу

Вопрос:
а можно использовать цикл в цикле?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Дек 29, 2008 1:35 pm Ответить с цитатой Вернуться к началу

ID писал(а):
Вопрос:
а можно использовать цикл в цикле?

Конечно можно. Только очень часто такая конструкция тормозит безбожно из-за того, что расчетов много.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Вт Дек 30, 2008 12:49 pm Ответить с цитатой Вернуться к началу

вопрос:
почему я могу писать:
Код:
Cfts_sign[0]=         0;

а писать так
Код:
my_dayofweek[0]=      DayOfWeek();

не могу - Ами ругается???
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Дек 30, 2008 3:26 pm Ответить с цитатой Вернуться к началу

ID писал(а):
вопрос:
почему я могу писать:
Код:
Cfts_sign[0]=         0;

а писать так
Код:
my_dayofweek[0]=      DayOfWeek();

не могу - Ами ругается???

Потому, что DayOfWeek() это массив и никак нельзя запихать все его члены в одно число. Напиши
Код:

my_dayofweek = DayOfWeek();

и потом используй my_dayofweek[0] если есть необходимость.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Янв 21, 2009 9:31 am Ответить с цитатой Вернуться к началу

Олег всю голову уже сломал с циклами,не понимаю их нихрена, подскажи как реализоват, расчет линий ведется от точки 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

СообщениеДобавлено: Ср Янв 21, 2009 9:46 am Ответить с цитатой Вернуться к началу

Напиши подробнее. Откуда и куда линия, прямая или нет, горизонтальная или наклонная и т.п.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Янв 21, 2009 10:50 am Ответить с цитатой Вернуться к началу

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

СообщениеДобавлено: Пт Янв 23, 2009 2:09 pm Ответить с цитатой Вернуться к началу

Блин. Времени нет. Постараюсь в понедельник ответить. Раньше не получится Sad

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen