Эксплуатация AmiBroker

  • Автор темы ltybcru
  • Дата начала

ltybcru

New member
Помогите разобраться с такими вопросами:
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 );
3. И третий: С помощью записи в коде:
Код:
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 )));
}
можно увидеть на графике соотв-ю информацию. По умалчанию всегда появляется инфа "All Values", а я хочу чтоб появлялась инфа Only Prices (цена close, open, low, high). Что поменять в этом коде, не могу сообразить.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху