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



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

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

Доброго дня всем)
Олег, я в легком замешательстве, т.к. не знаю даже как обозначить проблему.....Наверное опишу что творит робот, а ты может поймешь что не так....
Система показывает лонг - робот продает 1 лот, потом система показывает шорт - робот 1 лот покупает и 2 продает Shocked , я пробоват на разных системках резутьтат такой же. SOS.

_________________
Алексей
Посмотреть профиль Отправить личное сообщение
диван



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

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

робот:
Код:
///// TradeBot v.1.1. Последние изменения 6.12.2004 /////

///////// Установки аккаунта ///////////

TickerID=2;         // уникальный для каждого индикатора номер
Ticker="GP5";      // название бумаги в Амиброкере. На другой бумаге работать не будет
TimeFrame=5;       // таймфрейм в минутах. На других таймфреймах работать не будет
Classcode="SPBFUT";   // код класса бумаги
Seccode="GZM8";     // код бумаги
Account="SPBFU";  // ваш аккаунт на бирже
Client="SPBFU";      // код клиента
Lots=1;             // сколько лотов желаете торговать
FileName="C:/Documents and Settings/Алексей........./Мои документы/amibroker/trans.tri"; // слэши прямые!!! имя файла с транзакциями для квика
Otstup=0.1; // в процентах. заявка будет выставлена хуже текущей цены на столько процентов
Point=0; // количество знаков после запятой в цене
система
Код:
////// Убираем лишние сигналы /////////////

Buy = LastValue(Buy);
Short = LastValue(Short);

//////////// Формируем транзакцию.//////////////
////////////////////////////////////////////////
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////

procedure savetrifile(stransid,sstr) {
  f=fopen(FileName,"r");
  found=0;
  if (f) {
    while (!feof(f)) {
      s=fgets(f);
      if (StrFind(s,stransid)>0) {
        found=1;
      }
    }
    fclose(f);
  }
  if (found==0) {
    f=fopen(FileName,"a");
    if (f) {
      fputs(sstr+"\n",f);
      fclose(f);
    }
  }
}

function makeandsave(sOper,sOperID,sprice) {
    CCS="";
    if (Client!="") { CCS=" CLIENT_CODE="+Client+";"; }
    transid=StrFormat("TRANS_ID=%g%g%g%g;",TickerID,sOperID,LastValue(Ref(DayOfYear(),-1)),LastValue(Ref(TimeNum(),-1)));
    str=StrFormat(transid+"PRICE=%1."+Point+"f;QUANTITY=%g;OPERATION="+sOper+";CLASSCODE="+Classcode+"; ACTION=NEW_ORDER; TYPE=L; SECCODE="+Seccode+"; ACCOUNT="+Account+";"+CCS,sprice,Lots);
    savetrifile(transid,str);
}

if ((Now(3)==LastValue(DateNum()))AND(BarCount>1)AND(Name()==Ticker)AND(TimeFrame==Interval()/60)AND((Buy[BarCount-1]==1)OR(Sell[BarCount-1]==1)OR(Short[BarCount-1]==1)OR(Cover[BarCount-1]==1))) {
  ifbuy=IIf(Buy[BarCount-1]==0,1,0); 
  ifsell=IIf(Sell[BarCount-1]==0,1,0); 
  ifshort=IIf(Short[BarCount-1]==1,1,0); 
  ifcover=IIf(Cover[BarCount-1]>0,1,0);   
  if (ifbuy) {
    price=(1+Otstup/100)*Close[BarCount-1];
    makeandsave("B",1,price);
  }
  if (ifsell) {
    price=(1-Otstup/100)*Close[BarCount-1];
    makeandsave("S",2,price);
  }
  if (ifshort) {
    price=(1-Otstup/100)*Close[BarCount-1];
    makeandsave("S",3,price);
  }
  if (ifcover) {
    price=(1+Otstup/100)*Close[BarCount-1];
    makeandsave("B",4,price);
  }
}

//// mehanizator (c) 2004, http://www.russian-trader.ru

_________________
Алексей
Посмотреть профиль Отправить личное сообщение
диван



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

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

сейчас сигнал на лонг был, робот его проигнорировал и стопы не сработали Sad

_________________
Алексей
Посмотреть профиль Отправить личное сообщение
диван



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

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

сейчас сигнал на лонг был, робот его проигнорировал и стопы не сработали Sad

_________________
Алексей
Посмотреть профиль Отправить личное сообщение
диван



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

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

Сейчас сигнал шорт, робот 1 лот купил и 1 продал Shocked

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


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

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

Выложи содержание .tri файла.

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



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

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

TRANS_ID=22151140000;PRICE=35941;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=21151141000;PRICE=35966;QUANTITY=1;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=22151141000;PRICE=35894;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=23151141000;PRICE=35894;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=21151151000;PRICE=35958;QUANTITY=1;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=23151151000;PRICE=35886;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=24151151500;PRICE=36092;QUANTITY=1;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=21151173000;PRICE=36035;QUANTITY=1;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=22151173000;PRICE=35963;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;
TRANS_ID=23151173000;PRICE=35963;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=GZM8; ACCOUNT=qqqqqqq; CLIENT_CODE=qqqqqqq;

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


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

СообщениеДобавлено: Сб Май 31, 2008 8:41 pm Ответить с цитатой Вернуться к началу

Так. Что мы имеем?
На баре 14.10 3 исполненых сигнала Buy, Sell и Short.
На баре 15.10 2 исполненых синала Buy и Short.
На баре 17.30 3 исполненых сигнала Buy, Sell и Short.

Такое может быть в двух случаях.
1. Нет фильтра сделок
(либо
Код:
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);


либо
Код:
Equiti(1)

)

Причем отсутствие такого фильтра совершенно очевидно т.к. робот совершает 2 продажи подряд.
2. Ошибка при написании стратегии для робота и в робот попадают сигналы с текущего (живого) бара и в результате сигналы при изменении бара появляются и исчезают
(в моем варианте робота этот момент решен при помощи
Код:

Buy = Ref(Buy, -1);
Sell = Ref(Sell, -1);
Short = Ref(Short, -1);
Cover = Ref(Cover, -1);


А у Меха за счет стратегии не учитывающей Close.
)


Вот все, что могу сказать...

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


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

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

Олег, а была ли решена проблема, отсутствия пирамидинга у ами в старых версиях?

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


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

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

Решена очень давно.
В хелпере тема Pyramiding (scaling in/out) and mutliple currencies in the portfolio backtester

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


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

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

000 писал(а):
Решена очень давно.
В хелпере тема Pyramiding (scaling in/out) and mutliple currencies in the portfolio backtester


А что если воспользоваться твоей наработкой.

Код:
/*
A - покупка 20%
BB - продажа (закрытие позы)
AA - доливка 80%
B - сокращение позы на 80%
*/

A = ...;
BB = ...;
AA = ...;
B = ...;

Buy = A;
Sell = BB;

// удаляем лишние сигналы

Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);

// определяем когда система находится в рынке по первоначальному сигналу

intrade = Flip(Buy, Sell);

// УДАЛЯЕМ ЛИШНИЕ СИГНАЛЫ НА ДОЛИВКУ

// сперва сигналы поступившие во время "вне рынка"
AA = intrade & AA;
B = intrade & B;

// затем лишние сигналы когда система уже в рынке и одна доливка уже была
AA = ExRem(AA, Buy);
B = ExRem(B, Buy);

Buy = Buy + sigScaleIn * intrade * AA + sigScaleOut * intrade * B;
Sell = Sell;

PositionSize = IIf(intrade & (AA OR B), 80, 20);

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


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

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

А чего в ней моего? Там как раз используются ф-ции sigScaleIn и sigScaleOut

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



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

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

Доброе утро!
Олег, это не 1 и не 2-я проблема: эквити (1) у меня есть, и сигнал у меня появляется на открытии свечи, следующей за выполнением условий бай\шорт. Может я тебе в личку скину весь код, а ты глянешь что не так, А?

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


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

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

Давай.

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


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

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

Олег,при отправке сигналов цена ухоит на 0.2 больше чем должна была, причем в блэк тесте все пучком, совпалает до сотых если в ручную считать, отступ не причем проверял, это может быть из-за отсутствия в коде:
Buy = LastValue(Buy);
Sell = LastValue(Sell);
Short = LastValue(Short);
Cover = LastValue(Cover);

Просто вставляю в код и на графике перестают отображаться сигналы.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen