[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 597
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день, продолжаю разбираться с кодингом, взял пример советника из статьи раздела учебник, заменил код из примера:
На произвольный для обучения:
Сделки не выставляются, подскажите пожалуйста в чём причина, как подправить код.Urain, спасибо, не перестаю удивляться логике mql, а если через for(int i=1; попробовать, скрипт не упроститься - не подскажите, как оформить, не могу ещё логику языка прочувствовать, через что определить оператор двигающий массив?
P. S. Массив я объявлял, по ошибке в скрипте примера удалил:
Разницу в ценах. Как следствие - разные, до противоположного, результаты индикаторов...
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
extern int n = 20;
extern int t3_period = 5;
extern double b = 0.618;
extern int mBars = 300;
extern int Bars.Count = 0;
int i,t,c;
double Buf1[],Buf2[],CF_p[5001],CF_n[5001],Ch_p[5001],Ch_n[5001],k_n,k_p,ch_p,ch_n,cff_p,cff_n,
AcBars,t3,t32,A1,A2,b2,b3,c1,c2,c3,c4,e1,e2,e3,e4,e5,e6,n1,w1,w2,e12,e22,e32,e42,e52,e62;
//+------------------------------------------------------------------+
int init() {
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, Buf1);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, Buf2);
return(0); }
//+------------------------------------------------------------------+
int start() {
int limit;
if (IndicatorCounted()<0) return(-1);
limit=Bars-IndicatorCounted();
if (Bars.Count>0 && limit>Bars.Count) limit=Bars.Count;
for(int i=0; i<limit; i++)
{
b2=b*b; b3=b2*b; c1=-b3; c2=(3*(b2+b3)); c3=-3*(2*b2+b+b3); c4=(1+3*b+b3+3*b2); n1=t3_period;
if(n1<1) n1=1; n1=1+0.5*(n1-1); w1=2/(n1+1); w2=1-w1;
if(AcBars==0) AcBars=Bars-mBars;
for(c=AcBars; c<=Bars-1; c ++) { i=Bars-1-c; {
if(Close[i]>Close[i+1]) { Ch_p[i]=Close[i]-Close[i+1]; CF_p[i]=Ch_p[i]+CF_p[i+1]; Ch_n[i]=0; CF_n[i]=0; }
else { Ch_p[i]=0; CF_p[i]=0; Ch_n[i]=Close[i+1]-Close[i]; CF_n[i]=Ch_n[i]+CF_n[i+1]; }}
for(t=i+n; t>=i; t--) { ch_p=Ch_p[t]+ch_p; ch_n=Ch_n[t]+ch_n ; cff_p=CF_p[t]+cff_p; cff_n=CF_n[t]+cff_n; }
k_p=ch_p-cff_n; k_n=ch_n-cff_p;
A1=k_p; e1=w1*A1+w2*e1; e2=w1*e1+w2*e2; e3=w1*e2+w2*e3; e4=w1*e3+w2*e4;
e5=w1*e4+w2*e5; e6=w1*e5+w2*e6; t3=c1*e6+c2*e5+c3*e4+c4*e3; Buf1[i]=t3;
A2=k_n; e12=w1*A2+w2*e12; e22=w1*e12+w2*e22; e32=w1*e22+w2*e32; e42=w1*e32+w2*e42;
e52=w1*e42+w2*e52; e62=w1*e52+w2*e62; t32=c1*e62+c2*e52+c3*e42+c4*e32; Buf2[i]=t32;
AcBars=AcBars+1; ch_p=0; ch_n=0; cff_p=0; cff_n=0; }
}
return(0); }
Подскажите где ошибка не обновляется, историю показывает нормально а online нет
Добрый день. Массив объявил, оператор двигающий индекс массива задал, ордера не выставляются. Подскажите, что не так.
OrderSend попробуйте прописать, тогда всё получиться...
Хелп стандартный в MetaEditore читали? Если нет, прочтите, весь...
Добрый день. Массив объявил, оператор двигающий индекс массива задал, ордера не выставляются. Подскажите, что не так.
Мне необходимо найти одну открытую позицию, имеющую самый большой убыток.
Суть в том, что мне нужно далее найти позицию, имеющую профит больше самой убыточной позы и встречно их закрыть.
Мож кто уже имеет наработки по данному вопросу иль сталкивался уже с такой проблемой?
OrderSend попробуйте прописать, тогда всё получиться...
Хелп стандартный в MetaEditore читали? Если нет, прочтите, весь...
Из детского возраста задавать вопрос не обратившись к хэлпу и яндексу вырос. Сендов море, но позиции не открываются: