Опять прошу помощи... Проверка критериев открытия/закрытия показывает их появление по заданным условиям, но когда иду дальше, алерт пишет, что их нет. Здесь тоже что-то упускаю?:
//----------------------------------------------------------------------------------- 8 -- Открытие ордеровwhile (Ticket==0) // Цикл открытия ордеров
{
if (OpnB != true || OpnS != true)
{
Alert("Отсутствуют критерии открытия позиций");
return; // Выход из OnTick()
}
if (Total==0) Alert("открытых ордеров нет");
if (Total==0 && OpnB == true) // Если открытых ордеров нет и есть критерий открытия БАЙ...
{
SL = Bid - New_Stop(StopLoss)*Point; // СЛ открытия
TP = Bid + New_Stop(TakeProfit)*Point; // ТП открытияAlert("Попытка открыть БАЙ. Ожидание ответа...");
Ticket=OrderSend(Symb,OP_BUY,Lots,Ask,2,SL,TP,Blue); // Открытие БАЙif (Ticket>0) // Если получилось...
{
Alert("Открыт ордер БАЙ №",Ticket);
break; // Выход из while
}
Всем доброго времени суток! А вот теперь вопрос из ряда вон выходящий..... Представляю функцию старт. Вопрос, почему при каждом новом баре переменная N увеличивается в два раза. При каждом новом баре, хотя должна делать это ТОЛЬКО при приходе нового сигнала???
Что скажут на это разработчики???
int start()
{
int i,limit,K;
int counted_bars=IndicatorCounted();
// double R,P,N,Zscore,Nprof,Nloose;//limit=Bars-100;if (b!=Bars){
b=Bars;
//Sleep(3000);double ldt_BeginDay = iTime (NULL, PERIOD_D1,20);
double limit1 = iBarShift (NULL, 0, ldt_BeginDay);
if(counted_bars<1) limit=limit1-counted_bars;
else limit=limit1;
for(i=limit; i>=1; i--)
{
double Profit=(iCustom(NULL, 0, "TDSEQUENTA v2015",5,8,12,0,i));
double CurSignal=(iCustom(NULL, 0, "TDSEQUENTA v2015",5,8,12,6,i));
if (CurSignal!=0){
/*
if (curDay!=TimeDay(Time[i])) {
curDay=TimeDay(Time[i]);
double AAA=ProfitFactor;
}*/if ((Profit>0)&&(CurSignal!=0)) {Nprof=Nprof+1;
if (LastProfit<=0) R=R+1;
SredP1=SredP1+Profit;
GrosProf=GrosProf+Profit;
} else Nprof=Nprof;
if ((Profit<0)&&(CurSignal!=0)) { Nloose=Nloose+1;
if (LastProfit>=0) R=R+1;
SredL1=SredL1+(Profit*-1);
GrosLoose=GrosLoose+(Profit*-1);
} Nloose=Nloose;
if (Nloose>0)SredL=SredL1/Nloose;
if (Nprof>0) SredP=SredP1/Nprof;
// if (Profit>0) Sred=Sred+Profit; else Sred=Sred+(Profit*-1);
N=Nprof+Nloose;
P=2*Nprof*Nloose;
// if (Body!=LastBody)N=N+1; // if (CurSignal!=0)K=K+1;// if (CumDel!=0)Volum=AD/CumDel;if (((Nprof+Nloose)>5)&&(SredL!=0)) MO=(1+(SredP/SredL))*((Nprof/(Nprof+Nloose))-1); //MO//////////стандартное отклонение//////////if ((N>0)&&(LastProfit!=Profit))Sred1=Sred1+((Profit-(Sred/N))*(Profit-(Sred/N)));
if ((N>2)&&(LastProfit!=Profit)) Sred2=sqrt(Sred1/(N-1));
if ((Sred2>0)) Sharp=MO/Sred2;
if (GrosLoose>0) ProfitFactor=GrosProf/(GrosLoose); //ProfitFactorif ((N>2)&&(P>5)) Zscore=(N*(R-0.5)-P)/sqrt((P*(P-N))/(N-1)); // Zscoreif ((SredL>0)&&(SredP>0)&&(P>5)) Kelli=((1-(Nprof/N))/(SredP/SredL))-(Nprof/N);
//Buffer0[i+1]=ProfitFactor;
}
// Buffer1[i]=Kelli-LastKelli;//Buffer2[i]=Zscore-LastZscore;
Buffer2[i]=N;
// if ((Profit1>0)) Buffer3[i]=1; else Buffer3[i]=0;// if ((Profit1<0)) Buffer5[i]=1; else Buffer5[i]=0;// Buffer4[i]=Sharp;//Buffer5[i]=HC;// Buffer6[i]=LC;/*
if (Buffer2[i]>0){
if (Profit>0.000){
if (CurSignal>0) Buffer3[i]=1;
if (CurSignal<0) Buffer3[i]=-1;
}
if (Profit<0.000){
if (CurSignal>0) Buffer3[i]=-1;
if (CurSignal<0) Buffer3[i]=1;
}
}
if (Buffer2[i]<0){
if (Profit>0.000){
if (CurSignal>0) Buffer3[i]=-1;
if (CurSignal<0) Buffer3[i]=1;
}
if (Profit<0.000){
if (CurSignal>0) Buffer3[i]=1;
if (CurSignal<0) Buffer3[i]=-1;
}
}*//*
LastPF=ProfitFactor;
LastMO=MO;
LastZscore=Zscore;
LastSTD=STD;
LastKelli=Kelli;
LastSharp=Sharp;
LastVolume=Volum;
LastProfit=Profit;
LastPF=ProfitFactor;*/// Zscore=0;
}
}
return(0);
}
Может кто-то уже сталкивался с такой проблемой и знает причину и способ решения?
Советник четко работает на тестере, а при включении на текущих котировках открытую по критериям позицию закрывает на следующем УБЫТОЧНОМ тике (Плюсовой тик не влияет). Полное впечатление вмешательства извне. В чем тут может быть дело? Спасибо.
Может кто-то уже сталкивался с такой проблемой и знает причину и способ решения?
Советник четко работает на тестере, а при включении на текущих котировках открытую по критериям позицию закрывает на следующем УБЫТОЧНОМ тике (Плюсовой тик не влияет). Полное впечатление вмешательства извне. В чем тут может быть дело? Спасибо.
Без кода только экстрасенсы помогут. Была где-то их ветка. Надо там вопрос задать
Vinin: Без кода только экстрасенсы помогут. Была где-то их ветка. Надо там вопрос задать
"Шутка юмора" всегда в плюс!
Код великоват, чтобы его полностью здесь выкладывать. Но написан он, используя в качестве шаблона готовый советник Слепцова. Вставил только сваи индикаторы и свои условия для торговых критериев. Я думаю, что причина все же в каких-то предварительных настройках кода, но они у меня полностью идентичны оригиналу.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
РАБОТАЕТ! СПАСИБО!
Пойду проверять дальше. Еще раз спасибо.
мKак сделать программно в индикаторе ?
в помощнике не знаю как спрашивать.
МОжет кто конкретную сылку сюда кинет или ключевые слова.
Посмотри Свойства графиков ChartGetInteger() и CHART_WINDOW_IS_VISIBLE
Всем доброго времени суток! А вот теперь вопрос из ряда вон выходящий..... Представляю функцию старт. Вопрос, почему при каждом новом баре переменная N увеличивается в два раза. При каждом новом баре, хотя должна делать это ТОЛЬКО при приходе нового сигнала???
Что скажут на это разработчики???
Здравствуйте!
Может кто-то уже сталкивался с такой проблемой и знает причину и способ решения?
Советник четко работает на тестере, а при включении на текущих котировках открытую по критериям позицию закрывает на следующем УБЫТОЧНОМ тике (Плюсовой тик не влияет). Полное впечатление вмешательства извне. В чем тут может быть дело? Спасибо.
Здравствуйте!
Может кто-то уже сталкивался с такой проблемой и знает причину и способ решения?
Советник четко работает на тестере, а при включении на текущих котировках открытую по критериям позицию закрывает на следующем УБЫТОЧНОМ тике (Плюсовой тик не влияет). Полное впечатление вмешательства извне. В чем тут может быть дело? Спасибо.
Без кода только экстрасенсы помогут. Была где-то их ветка. Надо там вопрос задать
"Шутка юмора" всегда в плюс!
Код великоват, чтобы его полностью здесь выкладывать. Но написан он, используя в качестве шаблона готовый советник Слепцова. Вставил только сваи индикаторы и свои условия для торговых критериев. Я думаю, что причина все же в каких-то предварительных настройках кода, но они у меня полностью идентичны оригиналу.
Отсюда конкретный вопрос новичка - Какие изменения необходимо ввести в код, чтобы советник работал не только в тестере, но и в реале?
Отсюда конкретный вопрос новичка - Какие изменения необходимо ввести в код, чтобы советник работал не только в тестере, но и в реале?