Помогите разобраться с такими вопросами:
1. Как сохранить настройки каждой базы?
Например в базе №1 я открыл 8 листов, выбрал тикеры, настроил графики и т.п. Сохранил.
В базе №2 открыл листы с др. тикерами, графиками и т.п., сохранил. Если открыть базу №1 то там видно сохранение настроек базы №2. (например: если лист закрыл в одной базе, в другой он то же закрывается).
В общих настройках ничего конкретного не нашел.
2. Торгуя в реальном времени прога не отправила заявку в ТРИ файл, хотя на графике стрелка о заявке появилась и в тестере сделка состоялась. Прогнав тут же через Bar replay эта заявка в ТРИ появилась и в квике отобразилась. Тайфрем везде по 5 минут, интернет не отключался, руками не лазил. Какая может быть причина. Вот часть системы:
3. И третий: С помощью записи в коде:
можно увидеть на графике соотв-ю информацию. По умалчанию всегда появляется инфа "All Values", а я хочу чтоб появлялась инфа Only Prices (цена close, open, low, high). Что поменять в этом коде, не могу сообразить.
1. Как сохранить настройки каждой базы?
Например в базе №1 я открыл 8 листов, выбрал тикеры, настроил графики и т.п. Сохранил.
В базе №2 открыл листы с др. тикерами, графиками и т.п., сохранил. Если открыть базу №1 то там видно сохранение настроек базы №2. (например: если лист закрыл в одной базе, в другой он то же закрывается).
В общих настройках ничего конкретного не нашел.
2. Торгуя в реальном времени прога не отправила заявку в ТРИ файл, хотя на графике стрелка о заявке появилась и в тестере сделка состоялась. Прогнав тут же через Bar replay эта заявка в ТРИ появилась и в квике отобразилась. Тайфрем везде по 5 минут, интернет не отключался, руками не лазил. Какая может быть причина. Вот часть системы:
Код:
Equity(1,0);
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 );
Код:
if( ParamToggle("Tooltip shows", "Only Prices|All Values" ) )
{
ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));
}