Торговый автомат Амиброкер+Квик

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

mehanizator1

New member
На этой ветке поднималась? Я тут вроде все пролистал - нема этого(
не помню точно. попробую заново подумать :)
там кратно 5 должна быть цена?
тогда после
function makeandsave(sOper,sOperID,sprice) {
надо добавить строчку:
sprice=5*round(sprice/5);
 

divan

New member
Здрасте всем)
Механизатор, я снова с вопросом по роботу, можно?
Хотелось бы что бы он не входил в позицию пока не закроет предыдущую....вроде тут это изображено:
Код:
////// Убираем лишние сигналы ///////////// 

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

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

procedure savetrifile(stransid,sstr) { 
  f=fopen(FileName,"r");
ну и т.д. , а он хреначит все сигналы подряд....Причем в тестере считает все как надо...Вот....Что не так?
 

mehanizator1

New member
Здрасте всем)
Механизатор, я снова с вопросом по роботу, можно?
Хотелось бы что бы он не входил в позицию пока не закроет предыдущую....вроде тут это изображено:
Код:
////// Убираем лишние сигналы ///////////// 

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

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

procedure savetrifile(stransid,sstr) { 
  f=fopen(FileName,"r");
ну и т.д. , а он хреначит все сигналы подряд....Причем в тестере считает все как надо...Вот....Что не так?
для этого там стоят:

////// Убираем лишние сигналы /////////////

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

вы это не удалили случаем?
 

divan

New member
для этого там стоят:

////// Убираем лишние сигналы /////////////

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

вы это не удалили случаем?
Ай вай-вай) я совсем забыл..Да, точно удалял - у меня выход по стопу или по трейлингу, поэтому эти условия система не пропускала(. А как ExRem записать в этом случае? Просто sell and cover убрать?
 

mehanizator1

New member
Ай вай-вай) я совсем забыл..Да, точно удалял - у меня выход по стопу или по трейлингу, поэтому эти условия система не пропускала(. А как ExRem записать в этом случае? Просто sell and cover убрать?
не знаю, я только за свой код отвечаю :)
 

divan

New member
не знаю, я только за свой код отвечаю :)
А я про Ваш код и говорю)
Код:
Buy=ExRem(Buy,Sell); 
Sell=ExRem(Sell,Buy); 
Short=ExRem(Short,Cover); 
Cover=ExRem(Cover,Short);
Что с ним сделать что бы он и лишние сигналы отсеивал и выход из позиции не по условию sell и cover ,а по стопу и трейлингу разрешал? Это вообще возможно?
 

mehanizator1

New member
А я про Ваш код и говорю)
Код:
Buy=ExRem(Buy,Sell); 
Sell=ExRem(Sell,Buy); 
Short=ExRem(Short,Cover); 
Cover=ExRem(Cover,Short);
Что с ним сделать что бы он и лишние сигналы отсеивал и выход из позиции не по условию sell и cover ,а по стопу и трейлингу разрешал? Это вообще возможно?
думаю, что нет. по крайней мере мне ничего в голову не приходит.
 

000

New member
Ай вай-вай) я совсем забыл..Да, точно удалял - у меня выход по стопу или по трейлингу, поэтому эти условия система не пропускала(. А как ExRem записать в этом случае? Просто sell and cover убрать?
После блока стопов ApplyStop() добавь строку
Equity(1);

И убери все Эксремы. Они в таком случае не нужны.
 

divan

New member
После блока стопов ApplyStop() добавь строку
Equity(1);

И убери все Эксремы. Они в таком случае не нужны.
Спасибо, Олег :) Не хотел тебя беспокоить по поводу робота Механизатора, но от тебя нигде не скроешься :D .Сейчас попробую собрать все воедино, надеюсь нигде ничего не забыл и не напутал, а то мне уже по ночам снится(JG<>?JKOI()*!~>K:KJG) нечто подобное :) , может потом это систематизируется как у Менделеева? :) Спасибо еще раз.
 

divan

New member
А, вот.. Олег , а вот это оставить?
Код:
////// Убираем лишние сигналы ///////////// 

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

pitero

New member
После блока стопов ApplyStop() добавь строку
Equity(1);

И убери все Эксремы. Они в таком случае не нужны.
А если система реверсная, и появится новый сигнал, а стоп уже стработал - крыть позицию ами не будет, а будет только открывать новую?

Я тут уже всю голову сломал - не пойму почему в конце дня заявка не выставлятся.
вот код
...
timeclose=173500;
CondTc= TimeNum() > timeclose ;

Buy = Cond2;
Short = Cond3;
Sell = Cond3 OR CondTc;
Cover = Cond2 OR CondTc;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
...
внизу система меха по созданию файла

после 17-35 должна закрыться поза. Стрелочкой на графике рисует - завка в файл не падает. подскажите, что не так?
 
А если система реверсная, и появится новый сигнал, а стоп уже стработал - крыть позицию ами не будет, а будет только открывать новую?

Я тут уже всю голову сломал - не пойму почему в конце дня заявка не выставлятся.
вот код
...
timeclose=173500;
CondTc= TimeNum() > timeclose ;

Buy = Cond2;
Short = Cond3;
Sell = Cond3 OR CondTc;
Cover = Cond2 OR CondTc;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
...
внизу система меха по созданию файла

после 17-35 должна закрыться поза. Стрелочкой на графике рисует - завка в файл не падает. подскажите, что не так?
Видимо TimeNum() как-то не так работает. А время закрытия бара правильно показывает при наведении мышки на последний бар?
 

pitero

New member
Видимо TimeNum() как-то не так работает. А время закрытия бара правильно показывает при наведении мышки на последний бар?
вроде правильно. я к тому что сигнал-то появляется - рисуется на графике (рисую так)
PlotShapes(IIf(Buy,shapeUpArrow,0),barcolor,0,Graph0,-10);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),BarColor,0,Graph0,-19);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),barColor,0,Graph0,-19);
PlotShapes(IIf(Sell,shapeDownArrow,0),barcolor,0,Graph0,-10);

т.е. сигнал Sell или Cover появляется (тут спецом стрелка над стрелкой рисуется и заливкой отличаются - видно)
а в файле транзакции не создается.
не пойму где копать
 

Andres

New member
Странно, раз стрелка рисуется, по идее заявка должна проходить. Посмотрел еще раз у себя :

tc=(Hour()>16 AND Minute()>40) OR Hour()>17;
tc2=Hour()<11 AND Minute()<34;
Buy= Long AND NOT tc AND NOT tc2 AND ise;
Short= Short_ AND NOT tc AND NOT tc2 AND ise;
Cover= Buy OR tc;
Sell= Short OR tc;

Equity(1);

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

Потом идет код Меха, и после этой процедуры второй раз стоит equity(1), зачем то я там ее вставил, уже не помню зачем, может это поможет

function makeandsave(sOper,sOperID,sPrice) {

}

Equity(1);
 

Commenced

New member
Странно, раз стрелка рисуется, по идее заявка должна проходить. Посмотрел еще раз у себя :

tc=(Hour()>16 AND Minute()>40) OR Hour()>17;
tc2=Hour()<11 AND Minute()<34;
Buy= Long AND NOT tc AND NOT tc2 AND ise;
Short= Short_ AND NOT tc AND NOT tc2 AND ise;
Cover= Buy OR tc;
Sell= Short OR tc;

Equity(1);

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

Потом идет код Меха, и после этой процедуры второй раз стоит equity(1), зачем то я там ее вставил, уже не помню зачем, может это поможет

function makeandsave(sOper,sOperID,sPrice) {

}

Equity(1);


Я делаю так
система
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
Equity(1)
//////////////////////////////////////////////////////////////////////////////////////////////
//Звук
AlertIf( Buy, "SOUND c:/WINDOWS/Media/tada.wav", "Длинная позиция",0,1+2+4+8);
AlertIf( Sell, "SOUND c:/WINDOWS/Media/tada.wav", "Выход из длинной позиции",0,1+2+4+8);
AlertIf( Short, "SOUND c:/WINDOWS/Media/tada.wav", "Короткая позиция",0,1+2+4+8);
AlertIf( Cover, "SOUND c:/WINDOWS/Media/tada.wav", "Выход из короткой позиции",0,1+2+4+8);
//////////////////////////////////////////////////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
Plot( O, "O", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
Plot( H, "H", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
Plot( L, "L", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
PlotShapes(IIf(Buy,shapeUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Sell,shapeDownArrow,0),4,0,Graph0,-15);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),4,0,Graph0,-15);

Buy = LastValue(Buy);
Sell = LastValue(Sell);
Short = LastValue(Short);
Cover = LastValue(Cover);
Ну и робот меха.

Почему не записываются сигналы в три файл, ами в момент его возникновения был свернут (такая особенность у кода меха, если ами свернут сигнал не отправляется, для решения можно использовать код ООО ), В системе ты задал, время 60 мин, а график открыт на 15 мин, , ну и другие параметры проверь, если символ назвал ГП60, при создании, то и в роботе должно имя совпадать иначе система решит что ее создовали для другом бумаги. Русифицированный хелп по ами можно взять здесь: http://amisite.ru/files/fil_ind.htm
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху