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



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

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

Приветствую всех. Торгуя в реальном времени прога не отправила заявку в ТРИ файл, хотя на графике стрелка о заявке появилась и в тестере сделка состоялась. Прогнав тут же через Bar replay эта заявка в ТРИ появилась и в квике отобразилась. Тайфрем везде по 5 минут, интернет не отключался, руками не лазил. Какая может быть причина. Вот система:
Код:
////////// Правила системы //////////////
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
if( ParamToggle("Tooltip shows", "Only Prices" ) )
{
 ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));
}
_SECTION_END();

P = ParamField("Price field",-1);
Periods = Param("Periods", 35, 2, 300, 1 );
Width = Param("Width", 2, 0, 10, 0.05 );
Color = Param("color", 26 );
Style = ParamStyle("Style");
Plot( BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, style );
Plot( BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );

Buy = Cross(C, BBandBot( P, Periods, Width ));
Sell = Cross(BBandTop( P, Periods, Width ), C);
Short = Sell;
Cover =Buy;

PlotShapes(IIf(Buy,shapeUpArrow,0),10,0,Graph0,-30);
PlotShapes(IIf(Sell,shapeDownArrow,0),11,0,Graph0,-30);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),10,0,Graph0,-30);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),10,0,Graph0,-30);

/////////////////////////////////////////

Equity(1);

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


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

Classcode = GroupID(1);
if(TickSize == 0)
{
   PopupWindow( "Не задан размер тика значение TickSize", "ошибка", timeout = 5, left = -1, top = -1 );
}
else
{
   Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize;
   form = (1 + 0.1 * abs(floor(IIf(log10(TickSize)>0, 0, log10(TickSize)))));
}

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 (NOT found)
      {
         f = fopen(FileName, "a");
            if(f)
            {
               fputs(sstr+"\n",f);
               fclose(f);
            }
      }
}


function makeandsave(sOper, sprice)
{
   CCS="";
   if (Client != "")  CCS="CLIENT_CODE="+Client+";";

   transid = "TRANS_ID="   +FullName()+LastValue(TimeNum())+dir+"; ";

   str = transid   +
   "PRICE="         +NumToStr(sprice, format = form, separator=False)+"; " +
   "QUANTITY="      +NumToStr(Lots, format = 1.0, separator=False)+"; "+
   "OPERATION="   +sOper+"; "+
   "CLASSCODE="   +Classcode+"; "+
                "SECCODE="      +Name()+"; "+
   "ACTION="         +"NEW_ORDER; "+
   "TYPE="            +"L; "+
   "ACCOUNT="      +Account+"; "+
   CCS;

   savetrifile(transid, str);
}

if (TimeFrame == Interval()/60 & FullName() != "")
{
   if(Buy)
   {
      price = Open[BarCount-1] + Otstup;
      dir = "1";
      makeandsave("B", price);
   }
   if(Sell)
   {
      price = Open[BarCount-1] - Otstup;
      dir = "2";
      makeandsave("S", price);
   }
   if(Short)
   {
      price = Open[BarCount-1] - Otstup;
      dir = "3";
      makeandsave("S", price);
   }
   if(Cover)
   {
      price = Open[BarCount-1] + Otstup;
      dir = "4";
      makeandsave("B", price);
   }

}
else if (TimeFrame != Interval()/60)
   PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
      "ошибка", timeout = 5, left = -1, top = -1 );
else
   PopupWindow( "Не задан двузначный номер в поле FullName", "ошибка", timeout = 15, left = -1, top = -1 );


Эквити есть, фильтры сделок есть. Стал следить за моментом появления сигнала. Стрелочки сигнала сделки на графике появляются, а заявка в ТРИ то отправится, а то и не отправится. В чем дело не пойму. Связано ли это с тем что в одной торгующей БД открыто несколько чартов и с разными бумагами но одинаковым таймфреймом. У всех бумаг разный Full Name.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Дек 24, 2009 2:06 am Ответить с цитатой Вернуться к началу

А робота используете в АА или в виде индикатора?

По вопросу.
Вывод стрелок в коде до функции Equity(1) а определение сигналов после. Функция Equity(1) фильтрует лишние сигналы (несколько покупок/продаж поряд и т.п.)
Соответственно на чарте сигналы (стрелки) видно, а в систему они не попадают.

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



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

СообщениеДобавлено: Чт Дек 24, 2009 6:17 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А робота используете в АА или в виде индикатора?
Работает так же как ваш сканер через АА.

Код:
Вывод стрелок в коде до функции Equity(1) а определение сигналов после. Функция Equity(1) фильтрует лишние сигналы (несколько покупок/продаж поряд и т.п.)
Соответственно на чарте сигналы (стрелки) видно, а в систему они не попадают

Спасибо за подсказку. Действительно стрелки теперь появляются только там где происходит реальная сделка.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Дек 24, 2009 11:55 pm Ответить с цитатой Вернуться к началу

Только, как я понял и в виде индикатора используется этот же код. Это не хорошо. Он (код) пытается тоже писать заявки в tri и только зря тормозит систему.
Если так охота видеть стрелки на графике, то следует оставить часть которая рисует соответствующую графику, а остальное убрать.

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



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

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

У меня в одном чарте открыто два графика одной бумаги. В формуле первого (торгующего) записан робот (описанный в первом сообщении), в формуле второго стоят только правила системы
Код:
////////// Правила системы //////////////
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
if( ParamToggle("Tooltip shows", "Only Prices" ) )
{
 ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));
}
_SECTION_END();

P = ParamField("Price field",-1);
Periods = Param("Periods", 35, 2, 300, 1 );
Width = Param("Width", 2, 0, 10, 0.05 );
Color = Param("color", 26 );
Style = ParamStyle("Style");
Plot( BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, style );
Plot( BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );

Buy = Cross(C, BBandBot( P, Periods, Width ));
Sell = Cross(BBandTop( P, Periods, Width ), C);
Short = Sell;
Cover =Buy;

PlotShapes(IIf(Buy,shapeUpArrow,0),10,0,Graph0,-30);
PlotShapes(IIf(Sell,shapeDownArrow,0),11,0,Graph0,-30);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),10,0,Graph0,-30);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),10,0,Graph0,-30);


А вообще у меня таких чартов открыто 8 в одой базе данных, и вкаждой своя бумага, но со своим личным ID, чтоб не путалось ничего. Это может влиять на мою проблему?
И сразу созрел другой вопрос: Как сохранить настройки каждой базы?
Например в базе №1 я открыл 8 листов, выбрал тикеры, настроил графики и т.п. Сохранил.
В базе №2 открыл листы с др. тикерами, графиками и т.п., сохранил. Если открыть базу №1 то там видно сохранение настроек базы №2. (например: если лист закрыл в одной базе, в другой он то же закрывается).
В общих настройках ничего конкретного не нашел.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Если робот работает через АА, то с чарта его можно смело убрать. АА как раз хорош тем, что может на графики совсем внимания не обращать. Лишь бы <L была открыта соответствующая.
Т.е. в Ами как бы 2 малозависимых модуля. Графики и АА.

Цитата:

И сразу созрел другой вопрос: Как сохранить настройки каждой базы?

Постарайся разобраться с Layout. Там есть глобал, локал. Именно они отвечают за отображение. Единственное количество листов нельзя менять в зависимости от открытой БД.

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



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

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

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen