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



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

СообщениеДобавлено: Вс Сен 25, 2011 4:53 pm Ответить с цитатой Вернуться к началу

привет!
написал условие на вход
Код:
for (i = 0; i < BarCount; i++) {

   if (lpos1 == 0 AND spos1 == 0) {

      if (H[ i ]>H5[i] AND  H[i-1]<H5[1] AND NOT in4[i] AND flt[i] ) {
   
         Buy[ i ] = 1;
         BuyPrice[ i ] = H5[ i ];
         lpos1 = 1;


что судя нужно вписать чтобы была проверка на условие что lpos1 (или сделки по этому условию) сегодня еще не было

Спасибо
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 25, 2011 5:23 pm Ответить с цитатой Вернуться к началу

Код:
AND NOT lpos1

или
Код:
AND lpos1==0

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



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

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

Спасибо - это сработало (что-то сам не догнал)
но теперь немного усложняем

Нужно построить цепочку сделок
Вход в Лонг – пробили уровень, получили lpos=1
Условие на выход –пробой минимума предыдущего бара. При свершении получаем lpos=0
Условие на выход и реверс – бар на котором открылась лонговая сделка закрылся ниже минимума предыдущего бара и при этом текущий бар пробил минимум бара на котором случился лосевый вход

Пишу
Код:

for (i = 1; i < BarCount; i++) {
if (lpos1 == 0) {
if (H[ i ]>H5[i] AND  H[i-1]<H5[1] AND NOT in4[i] AND flt[i] ) {
        Buy[ i ] = 1;
         BuyPrice[ i ] = H5[ i ];
         lpos1 = 1;
} elseif (lpos1 == 1){
Тут условие на закрытие лонга без реверса

} А ВОТ ТУТ МЫСЛЬ ОБРЫВАЕТСЯ


Вот просто выход срабатывает правильно
А вот выход и последующий реверс – хрень выходит как ни крути
Как правильно объяснить амии, что на баре[i-2] мы были не в лонге (но могли быть в шорте),
на баре[i-1] произошел вход в лонг, но бар закрылся ниже минимума предыдущего бара, и теперь мы выходим из лонга и входим в шорт если мы пробиваем минимум предыдущего бара
[/code]
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Окт 04, 2011 7:56 pm Ответить с цитатой Вернуться к началу

Цитата:

Вход в Лонг – пробили уровень, получили lpos=1
Условие на выход –пробой минимума предыдущего бара. При свершении получаем lpos=0

Так тестировать нельзя.
Вход и выход на одном баре по условиям пробития корректно сделать нельзя. Если вход и выход на одном баре, то либо вход на открытии и по условиям Open <, >, ==... а выход по пробитии, либо вход на пробитии а выход по Close по условиям <, >, ==
Если вход и выход внутри бара, то как узнать какой сигнал случился раньше H > уровня или L < уровня???

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



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

СообщениеДобавлено: Вт Окт 04, 2011 10:35 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Цитата:

Вход в Лонг – пробили уровень, получили lpos=1
Условие на выход –пробой минимума предыдущего бара. При свершении получаем lpos=0

Так тестировать нельзя.
Вход и выход на одном баре по условиям пробития корректно сделать нельзя. Если вход и выход на одном баре, то либо вход на открытии и по условиям Open <, >, ==... а выход по пробитии, либо вход на пробитии а выход по Close по условиям <, >, ==
Если вход и выход внутри бара, то как узнать какой сигнал случился раньше H > уровня или L < уровня???


Ну я знаю это - естественно первый бар мы пропускаем и для обычного выхода не используем. Ами это и без подсказки делает. Меня выход и реверс интересует. Я написал "Условие на выход и реверс – бар на котором открылась лонговая сделка закрылся ниже минимума предыдущего бара и при этом текущий бар пробил минимум бара на котором случился лосевый вход"
Т-е относительно бара входа мы так же оперируем вторым баром
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Окт 07, 2011 12:06 am Ответить с цитатой Вернуться к началу

Типа как то так
Код:

for (i = 1; i < BarCount; i++) {
  if (lpos1 == 0)
  {
    if (H[i] > H5[i] AND H[i-1] < H5[1] AND NOT in4[i] AND flt[i])
    {
      Buy[i] = 1;
      BuyPrice[ i ] = H5[ i ];
      lpos1 = 1;
        if(C[i] < L[i-1]) // разу проверяем условия выхода
        {
          Sell[i] = 1;
          SellPrice[i] = C[i];
          lpos = 0;
        }
    }
    if(Buy[i-1] == 1 AND Sell[i-1] == 1 AND L[i] < L[i-1]) // реверс
    {
      Short[i] = 1;
      ShortPrice[i] = L[i-1];
      lpos = -1
    }
  }
.....


А почему у тебя if (H[i] > H5[i] AND H[i-1] < H5[1] AND NOT in4[i] ...
H5[1]?? Почему 1 а не i ?

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



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

СообщениеДобавлено: Вс Окт 09, 2011 10:35 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Типа как то так
Код:

for (i = 1; i < BarCount; i++) {
  if (lpos1 == 0)
  {
    if (H[i] > H5[i] AND H[i-1] < H5[1] AND NOT in4[i] AND flt[i])
    {
      Buy[i] = 1;
      BuyPrice[ i ] = H5[ i ];
      lpos1 = 1;
        if(C[i] < L[i-1]) // разу проверяем условия выхода
        {
          Sell[i] = 1;
          SellPrice[i] = C[i];
          lpos = 0;
        }
    }
    if(Buy[i-1] == 1 AND Sell[i-1] == 1 AND L[i] < L[i-1]) // реверс
    {
      Short[i] = 1;
      ShortPrice[i] = L[i-1];
      lpos = -1
    }
  }
.....


А почему у тебя if (H[i] > H5[i] AND H[i-1] < H5[1] AND NOT in4[i] ...
H5[1]?? Почему 1 а не i ?


Спасибо!
Пожалуй так сработать должно правильно

там действительно i стоит - просто описался когда на форум писал
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen