AmiBroker

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

zxcv7000

New member
Подскажите как написать в Амиброкере срабатывание стопа с одновременным переворотом.
Buy = условие ;
Sell = условие ;

Short=Sell;
Cover= Buy;

ApplyStop(0,1,0.2,0, True, 0);

Это - на что меня хватило.
с applystop не получится, надо условие для стопа самому рисовать.
Покажите пожалуйста какой нибудь пример написания стопа.
 

mehanizator1

New member
Подскажите как написать в Амиброкере срабатывание стопа с одновременным переворотом.
Buy = условие ;
Sell = условие ;

Short=Sell;
Cover= Buy;

ApplyStop(0,1,0.2,0, True, 0);

Это - на что меня хватило.
с applystop не получится, надо условие для стопа самому рисовать.
Покажите пожалуйста какой нибудь пример написания стопа.
buy = Условие;
stop = условие;
sell = условие OR stop;

в качестве стопа можно использовать быструю среднюю или параболик или что-нибудь еще.
 

zxcv7000

New member
Еще вопрос.
Помогите правильно написать функцию fgets( filehandle ) - возврат числового значения, находящегося в .xls файле. В этом файле одно цифровое значение, которое меняется по мере экспорта из Quik-а.
Это значение я хочу подставить в формулу Амиброкера для последующих вычислений.
Нашел функцию fgets, пишу путь к файлу, ничего не получается. Может флеши не правильно ставлю (хотя много вариантов перебрал) или эта функция для этого не годиться?
 

mehanizator1

New member
Еще вопрос.
Помогите правильно написать функцию fgets( filehandle ) - возврат числового значения, находящегося в .xls файле. В этом файле одно цифровое значение, которое меняется по мере экспорта из Quik-а.
Это значение я хочу подставить в формулу Амиброкера для последующих вычислений.
Нашел функцию fgets, пишу путь к файлу, ничего не получается. Может флеши не правильно ставлю (хотя много вариантов перебрал) или эта функция для этого не годиться?
так она обрабатывает файл как текстовый. конечно не годится.
 

zxcv7000

New member
fh = fopen( "С:\\a.txt", "r");
if( fh )
{
while( feof( fh ) )
{
price= fgets( fh );
}
}
else
{
printf("ERROR: file can not be found (does not exist)");
}

Не работает. Помогите, где тут ошибки?
 

zxcv7000

New member
Date: 20.04.2007 14:03:00

ifshort=IIf(Short[BarCount-1]==1,1,0);
ifcover=IIf(Cover[BarCount-1]==1,1,0);
if (ifbuy) {
fh = fopen("C:\\a.txt";"r")
--------------------------^

Error 30.
Syntax error
 

bmc

New member
Date: 20.04.2007 14:03:00

ifshort=IIf(Short[BarCount-1]==1,1,0);
ifcover=IIf(Cover[BarCount-1]==1,1,0);
if (ifbuy) {
fh = fopen("C:\\a.txt";"r")
--------------------------^

Error 30.
Syntax error
ну разумеется, там должна быть запятая, а не точка с запятой.
странно, но в сообщении сверху там же запятая стоит..??
 

mehanizator1

New member
Date: 20.04.2007 14:03:00

ifshort=IIf(Short[BarCount-1]==1,1,0);
ifcover=IIf(Cover[BarCount-1]==1,1,0);
if (ifbuy) {
fh = fopen("C:\\a.txt";"r")
--------------------------^

Error 30.
Syntax error
ну разумеется, там должна быть запятая, а не точка с запятой.
странно, но в сообщении сверху там же запятая стоит..??
запятая, а над ней точка. этот знак препинания называется "точка с запятой" :)
 

zxcv7000

New member
С запятой стало лучше.
Не воспринимает как синтаксическую ошибку. Но цену из файла не воспринимает.
fh = fopen( "C:\\a.txt", "r");
if( fh )
{
while( feof( fh ) )
{
price= fgets( fh );
}
}
else
{
printf("ERROR: file can not be found (does not exist)");
fclose( fh );

}

Объясню зачем это все надо. Торгую с помощью автомата Quik-Amibroker уважаемого Механизатора (Спасибо ему огромное). Снимаю сигналы с графика бумаги на ММВБ, а торгую фьючерсами. Т.к. цены отличаются в 10 раз, умножил Close[BarCount-1]) на 10 и все вроде бы хорошо. Но столкнулся с тем, что часто заявки не срабатывают, т.к. на ФОРТСе есть мин. и максимально возможные цены (можете посмотреть в Quik-e).Выход цены за их рамки дает надпись "Цена вне лимита" и заявка не регистрируется. Оптимизация величины отступа не дает 100% уверенность, т.к. между фьючерсом и бумагой спред все время колеблется иногда в разных направлениях.
Поэтому возникло предложение организовать экспорт из Quik-a числовых значений мин. и макс. возможных цен фьючерса в файл, и в случае возникновения сигнала брать эти значения из файла и выставлять заявку по этим макс и мин возможным значениям цены, обеспечивая таким образом 100% срабатывание заявки.

Я никогда не занимался программированием. Разбираюсь в этом с большим трудом. Помогите написать. Заранее благодарен.
 

mehanizator1

New member
С запятой стало лучше.
Не воспринимает как синтаксическую ошибку. Но цену из файла не воспринимает.
а почему ты думаешь что не воспринимает? раз ничего не говорит - значит воспринимает. в переменную price записывается значение.


Поэтому возникло предложение организовать экспорт из Quik-a числовых значений мин. и макс. возможных цен фьючерса в файл, и в случае возникновения сигнала брать эти значения из файла и выставлять заявку по этим макс и мин возможным значениям цены, обеспечивая таким образом 100% срабатывание заявки.
а не проще узнать алгоритм вычисления этих самых макс и мин и самому их считать в скрипте?
 

zxcv7000

New member
Не воспринимает, потому что я симулирую сигнал, а в файле .tri пишет нулевую цену и кроме того выдает ошибку при симуляции сигнала, когда переключаю дату компьютера на дату сигнала

if (found==0) {
f=fopen(FileName,"a");
if (f) {
fputs(sstr+"\n",f)
-----------------------^

Error 5.
Argument #1 has incorrect type (the function expects different argument type here)

Посчитать проблематично. Они эти цены меняют иногда в течение дня, при сильных движениях (правда меньших чем 10%), когда цена упирается, стакан пустеет и какое то время не торгуется. Отступом не получается, большое значение выносит за пределы возможного, а малое значение иногда не обеспечивает срабатывание, потому что спред есть, наприме цена бумаги 2100, а фьючеса 23000 или наоборот.
 

Andrew

New member
А амиброкер откуда качать можно?
На амиброкер.ком триальная версия вроде. Или лекарство есть?
Охота посмотреть, что за зверь.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху