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


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

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

Bobi писал(а):
а вот меня вопрос мучает: как код обрабатывается?

Т.е. нужно либо ВСЁ циклом делать или можно вперемешку с встроенными функциями? Ну типа
если я напишу

CondBuy = C>O;
CondSell = C<O;
for (i=1;i<BarCount;i++))
{
if (Buy[i])
Buy[i]=1;
и т.д и т.п.
}
Сколько раз мой цикл пересчитается в этом случае?

Прямо так, как написано работать не будет вообще потому, что массив Buy используемый в цикле перед этим не определен.
А в общем все правильно. Так делать можно. Цикл будет выполнен один раз. Сначала будут подготовлены массивы CondBuy и CondSell, а протом будет выполнен цикл.

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


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

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

Bobi писал(а):
000 писал(а):

// ЕСЛИ НАПИСАТЬ ТАК, ТО ЦИКЛ БУДЕТ ВЫПОЛНЯТЬСЯ ДАЛШЕ И НА БАРЕ ВХОДА
// СООТВЕТСТВЕННО ПРОВЕРКА НА СТОПЫ БУДЕТ ВЫПОЛНЕНА И НА БАРЕ ВХОДА
[/code]


А будет ли тестер учитывать выход на баре входа заложенный в цикле? У меня никак не хочет пока не включишь Allow same bar exit

Тестеру всеравно откуда появился сигнал на сделку (из цикла или нет). Тестер эти сигналы предварительно подготавливает (удаляет лишние и т.п.) и если опция Allow same bar exit не активирована, то тестер сигнал на выход появившийся на баре входа удалит.

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


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

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

Bobi писал(а):
000 писал(а):
Вариант попроще


по-моему эти строчки ничего не дают, поскольку есть проверка на наличие открытиых позиций , или я не прав:

Код:

else
  {
    Buy[i] = 0;
  }

В принципе строки не нужны. Написал на всякий случай чтобы удалять "лишние", не используемые сигналы на покупку.

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



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

СообщениеДобавлено: Вт Июл 01, 2008 2:23 pm Ответить с цитатой Вернуться к началу

ясненько. спасибо
Посмотреть профиль Отправить личное сообщение
ID
Советник


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

СообщениеДобавлено: Вт Июл 01, 2008 5:10 pm Ответить с цитатой Вернуться к началу

Олег, привет!!!
Скажи, плз, при использовании следующего кода Ами не должен брать противоположные сигналы, даже если пишу в настройках
Код:
SetOption(ReverseSignalForcesExit,1);

Код:
Код:
InitEquity=IIf(Name()=="GBPJPY" OR Name()=="JPY",1000000,10000);
SetOption("AllowPositionShrinking",0);   // Вкл (1) выкл (0)возможность открытия позиции, если денег не хватает
SetOption("InitialEquity",InitEquity);    // Начальный капитал
SetOption("AllowSameBarExit",1);          // Вкл (1) выкл (0) возможность выхода на баре входа
SetOption("ActivateStopsImmediately",1); // Вкл (1) выкл (0) активацию стопа на баре входа
SetOption("FuturesMode",1);               // Вкл (1) выкл (0) режим "Тестирование фьючерсов"
SetOption("ReverseSignalForcesExit",1);   // Вкл (1) выкл (0) вход в противоположную позицию при противп. сигнале
SetOption("PriceBoundChecking",0);       // Вкл (1) выкл (0) проверку соответствия bp/sp/shp/cp диапазону h-l
SetTradeDelays(0,0,0,0);                // Задержка торгов

PositionSize = 100;
MarginDeposit = 1;
RoundLotSize = 100;
PointValue = 100;

#include "C:\Program Files\AmiBroker\Formulas\Include\Settings\SpreadsFCID.afl"
#include "C:\Program Files\AmiBroker\Formulas\Custom\1_Zig-Zag\True_HiLo_peak_trough.afl"

Loss=         Param("Loss",150,0,500,50)*TickSize;
Trail=         Param("Trail",100,0,500,50)*TickSize;

Cb=            Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs=            Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));

L_p=         0;
S_p=         0;

Buy=         Ref(H<mp,-1) AND H>=mp AND Ref(Cb,-1)==0;
BuyPrice=      mp+spread;

period_l=      BarsSince(Buy);
trail_l=      IIf ( Buy, BuyPrice - Loss,
            IIf ( period_l != 0, Ref(HighestSince(Buy,H-trail,1),-1),Null));

Sell=         0;
SellPrice=      mt;

for(i=1;i<BarCount;i++)
{
   if(! L_p)
      {
         if(Buy[i])
            {
               L_p=1;
               pb=BuyPrice[i];
            }
      }
   else
      {
         Buy[i]=0;
      }
   if(L_p)
      {
         if(L[i]<=pb-Loss AND period_l[i]==0)
            {
               Sell[i]=1;
               SellPrice[i]=pb-Loss;
               L_p=0;
            }
         else
            if(L[i]<=trail_l[i-1] AND period_l[i]!=0)
               {
                  Sell[i]=1;
                  SellPrice[i]=trail_l[i-1];
                  L_p=0;
               }

      }
}

Short=         Ref(L>mt,-1) AND L<=mt AND Ref(Cs,-1)==0;
ShortPrice=   mt;

period_s=      BarsSince(Short);
trail_s=      IIf( Short, ShortPrice + Loss,
            IIf( period_s != 0, Ref(LowestSince(Short,L+trail,1),-1),Null));
u=0;

Cover=         0;
CoverPrice=   O;

for(i=1;i<BarCount;i++)
{
   if(! S_p)
      {
         if(Short[i])
            {
               S_p=1;
               ps=ShortPrice[i];
            }
      }
   else
      {
         Short[i]=0;
      }
   if(S_p)
      {
         if(H[i]>=ps+Loss-spread AND period_s[i]==0)
            {
               Cover[i]=1;
               CoverPrice[i]=ps+Loss;
               S_p=0;
            }
         else
            if(H[i]>=trail_s[i-1]-spread AND period_s[i]!=0)
               {
                  Cover[i]=1;
                  CoverPrice[i]=trail_s[i-1];
                  S_p=0;
                  u[i]=1;
               }
   
      }
}

/*
Plot(trail_s,"trail_s",colorRed,8+16);
Plot(trail_l,"trail_l",colorGreen,8+16);
Plot(zz,"ZZ",colorRed,1+4+32);
Plot(mt,"MT",colorGreen,1+4+32);
Plot(mp,"MP",colorBlue,1+4+32);
Plot(IIf(Buy,mp+n3,Null),"profitlong",colorRed,8+16);
Plot(IIf(Buy,mp-n2,Null),"losslong",colorRed,8+16);
Plot(IIf(Short,mt+n2,Null),"profit",colorRed,8+16);
Plot(IIf(Short,mt-n3,Null),"loss",colorRed,8+16);*/
Plot(Equity(),"qqq",colorRed,1);


Заранее благодарен за ответ!
Вообщем он, подлюка, у меня на противоположные плевать хотел.
Смотри рисунок. Продал где надо, а вот покупает на второй - на уровне трэйлинга, а мне надо чтобы он вылез на первой свечке, то есть на уровне бая (синий).
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июл 02, 2008 12:01 am Ответить с цитатой Вернуться к началу

А в этом месте вообще есть сигнал Buy? Если посмотреть еще до цикла, сразу после
Код:

Cb=            Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs=            Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));

L_p=         0;
S_p=         0;

Buy=         Ref(H<mp,-1) AND H>=mp AND Ref(Cb,-1)==0;
BuyPrice=      mp+spread;

Мне не очень нравится вот это место.
Код:

Cb=            Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs=            Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));


ps Интересно почему этот долбаный форум вместо реверссигнал... рисует звездочки?

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



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

СообщениеДобавлено: Ср Июл 02, 2008 1:40 am Ответить с цитатой Вернуться к началу

а есть у кого нить примерчик с циклами где лонги и шорты одновременно учавствуют?
Посмотреть профиль Отправить личное сообщение
Bobi



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

СообщениеДобавлено: Ср Июл 02, 2008 2:01 am Ответить с цитатой Вернуться к началу

Слушайте, гайсы, а как запретить тестеру совершать сделки первые n баров? А то меня он достал уже: упорно рвется в бой с первого бара, хоть я и говорю ему "for (i=5; i<BarCount; i++)"
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А ты сделай так
Код:

for(i = 1; i < BarCount; i++)
{
   if(i < 5)
      Buy[i] = 0;
}

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



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

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

000 писал(а):
А ты сделай так
Код:

for(i = 1; i < BarCount; i++)
{
   if(i < 5)
      Buy[i] = 0;
}


ага, работает, только если i=0 (в for).
Но тестер всё равно стрелки рисует.
Посмотреть профиль Отправить личное сообщение
ID
Советник


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

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

Цитата:
А в этом месте вообще есть сигнал Buy?

Я проверял - должен быть. ОК! Еще разик проверю!
Код:
ps Интересно почему этот долбаный форум вместо реверссигнал... рисует звездочки?

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


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

СообщениеДобавлено: Ср Июл 02, 2008 6:09 pm Ответить с цитатой Вернуться к началу

Цитата:
Это надо админа спросить

Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает.

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


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

СообщениеДобавлено: Чт Июл 03, 2008 6:08 am Ответить с цитатой Вернуться к началу

000 писал(а):
Цитата:
Это надо админа спросить

Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает.


А что секс на форуме раньше был в запрете? Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Bobi



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

СообщениеДобавлено: Чт Июл 03, 2008 11:38 am Ответить с цитатой Вернуться к началу

commenced писал(а):
000 писал(а):
Цитата:
Это надо админа спросить

Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает.


А что секс на форуме раньше был в запрете? Smile


Ты осторожней со словами ("секс на форуме"), а то посетителей спугнешь Smile
Посмотреть профиль Отправить личное сообщение
commenced
Советник


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

СообщениеДобавлено: Чт Июл 03, 2008 11:51 am Ответить с цитатой Вернуться к началу

Bobi писал(а):
commenced писал(а):
000 писал(а):
Цитата:
Это надо админа спросить

Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает.


А что секс на форуме раньше был в запрете? Smile


Ты осторожней со словами ("секс на форуме"), а то посетителей спугнешь Smile


Просто раньше с системами можно было только работать, а теперь еще и тарх..ся Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen