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

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

antuan

New member
в мете она
Enter long n1:=opt1;
m1:=Mov(C,n1,S);
MH:=If(Ref(C,-1)>H,Ref(C,-1),H);
ML:=If(Ref(C,-1)<L,Ref(C,-1),L);
tru:=mh-mL;
R:=Mov(tru,10,W)*0.5;
Ln:=If(C>PREV,M1-r,If(C<PREV,M1+r,m1));
C>Ref(LN,0);
Enter short n1:=opt1;
m1:=Mov(C,n1,S);
MH:=If(Ref(C,-1)>H,Ref(C,-1),H);
ML:=If(Ref(C,-1)<L,Ref(C,-1),L);
tru:=mh-mL;
R:=Mov(tru,10,W)*0.5;
Ln:=If(C>PREV,M1-r,If(C<PREV,M1+r,m1));
C<Ref(LN,0);

OPT1
Range: From 2 to 30 by 2
Current value: 14
в ами вроде как тода ты перевел
n1=17;
m1=MA(C,n1);
MH=IIf(Ref(C,-1)>H,Ref(C,-1),H);
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);
tru=mh-mL;
R=WMA(tru,10)*0.5;
ln=IIf(C>Ref(C,-1),M1-r,if(C<Ref(C,-1),M1+r,m1));
Buy=(C>Ref(ln,0));
Sell=(C<Ref(ln,0));

вставил в билдер
Line 26, Column 3:
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);

tru=mh-mL;

R=WMA(tru,10)*0.5;

ln=
--^

Error 23.
Syntax error
 

mehanizator1

New member
вместо ln ставь везде ln1 или что-нибудь другое, по другому обзови.
ln это в ами натуральный логарифм, вот он и ругается.
 

antuan

New member
ежели полностью билдеровская то так
///////// Установки аккаунта ///////////

Ticker="EESR";
TickerID=1;
Classcode="EQBR";
Seccode="EESR";
Account="L01-00000000";
Lots=1;
FileName="e:/trading/amibroker/trans.tri"; // слэши прямые!!!
Otstup=1.5; // в процентах

////////// Правила системы ///////////////

n1=17;
m1=MA(C,n1);
MH=IIf(Ref(C,-1)>H,Ref(C,-1),H);
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);
tru=mh-mL;
R=WMA(tru,10)*0.5;
ln=IIf(C>Ref(C,-1),M1-r,if(C<Ref(C,-1),M1+r,m1));
Buy=(C>Ref(ln,0));
Sell=(C<Ref(ln,0));

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

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

///////////// Рисуем всякое ///////////////

Plot(C,"price",1,128);
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);


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

if ((BarCount>1)AND(Name()==Ticker)AND((Buy[BarCount-1]==1)OR(Sell[BarCount-1]==1)OR(Buy[BarCount-1]==1)OR(Cover[BarCount-1]==1))) {
ifbuy=IIf((Buy[BarCount-1]==1)OR(Cover[BarCount-1]==1),1,0);
k=IIf(ifbuy,Buy[BarCount-1]+Cover[BarCount-1],Short[BarCount-1]+Sell[BarCount-1]);
if (ifbuy) { Oper="B"; } else { Oper="S"; }
price=IIf(ifbuy,(1+Otstup/100)*Close[BarCount-1],(1-Otstup/100)*Close[BarCount-1]);
transid=StrFormat("TRANS_ID=%g%g;",TickerID,BarIndex());
str=StrFormat(transid+"PRICE=%1.3f;OPERATION="+Oper+";CLASSCODE="+Classcode+"; ACTION=NEW_ORDER; TYPE=L; SECCODE="+Seccode+"; ACCOUNT="+Account+";QUANTITY=%g;",price,Lots*k);
f=fopen(FileName,"r");
found=0;
if (f) {
while (!feof(f)) {
s=fgets(f);
if (StrFind(s,transid)>0) {
found=1;
}
}
fclose(f);
}
if (found==0) {
f=fopen(FileName,"a");
if (f) {
fputs(str+"\n",f);
fclose(f);
}
}
}
 

mehanizator1

New member
нет не так

вот так:

////////// Правила системы ///////////////

n1=17;
m1=MA(C,n1);
MH=IIf(Ref(C,-1)>H,Ref(C,-1),H);
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);
tru=mh-mL;
R=WMA(tru,10)*0.5;
ln1=IIf(C>Ref(C,-1),M1-r,IIF(C<Ref(C,-1),M1+r,m1));
Buy=(C>Ref(ln1,0));
Sell=(C<Ref(ln1,0));
 

mehanizator1

New member
нет, даже вот так:


////////// Правила системы ///////////////

n1=17;
m1=MA(C,n1);
MH=IIf(Ref(C,-1)>H,Ref(C,-1),H);
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);
tru=mh-mL;
R=WMA(tru,10)*0.5;
ln1=IIf(C>Ref(C,-1),M1-r,IIF(C<Ref(C,-1),M1+r,m1));
Buy=(C>Ref(ln1,0));
Sell=(C<Ref(ln1,0));
Short=0;
Cover=0;
 

antuan

New member
поставил Ln1
аон опять недоволен
Line 26, Column 27:
ML=IIf(Ref(C,-1)<L,Ref(C,-1),L);

tru=mh-mL;

R=WMA(tru,10)*0.5;

ln1=IIf(C>Ref(C,-1),M1-r,if
--------------------------^

Error 23.
Syntax error
 

antuan

New member
пишет
Line 35, Column 25:
Buy=ExRem(Buy,Sell);

Sell=ExRem(Sell,Buy);

Short=ExRem(Short,Cover);
------------------------^

Variable 'short' used without having been initialized.
 

antuan

New member
пишет
Line 35, Column 25:
Buy=ExRem(Buy,Sell);

Sell=ExRem(Sell,Buy);

Short=ExRem(Short,Cover);
------------------------^

Variable 'short' used without having been initialized.
 

mehanizator1

New member
Возможные причины:
- указанное в Ticker называние не соответствует названию бумаги;
- путь до файла и имя файла указаны неверно;
- возможно файл уже открыт какой-то программой, блокнотом например, хотя я думаю это не помеха.
 

antuan

New member
воможно всетаки количество сигналов в трансы связано с тем что 15 мин фрейм -обновление 1 мин и при очередном обновлении если сигнал еще есть он пишется в транс а стрелки рисует правильно
по коду стрелки завязаны на сигнал в транс?
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху