Uzman Danışmanımın kodunda bir hata arıyordum ve bir yanlış anlaşılmayla karşılaştım - OnTick() işlevindeki if() deyimini test ederken yalnızca bir kez çalışıyor, sonraki tik ve çubuklarda çalışmıyor.
Niye ya? Ekli kod parçasında yanlış olan nedir?
Değişkenlerin yeniden atandığı yere bakın. Her şeyden önce, ClsS'nin nerede = false olduğunu bulun; ve yapılır mı?
Tekrar yardım rica ediyorum... Açılma/kapanma kriterlerini kontrol etmek belirtilen şartlara göre görünüşlerini gösteriyor fakat daha ileri gittiğimde alarm orada yok diyor. Burada da bir şey mi kaçırıyorum?
//----------------------------------------------------------------------------------- 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
}
Hepinize iyi günler! Ve şimdi soru sıra dışı ..... Başlat işlevini sunuyorum. Soru, her yeni çubukta N değişkeninin neden iki katına çıktığıdır. Her yeni çubukla, ancak bunu SADECE yeni bir sinyal geldiğinde yapmalı???
Geliştiriciler buna ne diyecek???
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 );
}
Belki birileri zaten böyle bir sorunla karşılaştı ve nedenini ve çözümünü biliyor mu?
EA, test cihazında iyi çalışır ve mevcut kotasyonlarda etkinleştirildiğinde, kriterlere göre açılan pozisyon bir sonraki KAYIP GİDİYOR tikinde kapatılır (Artı işareti etkilemez). Dış müdahalenin tam izlenimi. Buradaki sorun ne olabilir? Teşekkür ederim.
Belki birileri zaten böyle bir sorunla karşılaştı ve nedenini ve çözümünü biliyor mu?
EA, test cihazında iyi çalışır ve mevcut kotasyonlarda etkinleştirildiğinde, kriterlere göre açılan pozisyon bir sonraki KAYIP GİDİYOR tikinde kapatılır (Artı işareti etkilemez). Dış müdahalenin tam izlenimi. Buradaki sorun ne olabilir? Teşekkür ederim.
Kod olmadan sadece medyumlar yardımcı olacaktır. Bir yerde ip vardı. soru sormak lazım
Vinin : Kod olmadan sadece medyumlar yardımcı olacaktır. Bir yerde ip vardı. soru sormak lazım
"Şaka mizahı" her zaman bir artıdır!
Kodun tamamı buraya gönderilemeyecek kadar büyük. Ancak şablon olarak Sleptsov'un hazır danışmanı kullanılarak yazılmıştır. Ticaret kriterleri için yalnızca gösterge yığınlarını ve kendi koşullarımı ekledim. Nedeni hala bazı ön kod ayarlarında olduğunu düşünüyorum, ancak bunları orijinaliyle tamamen aynı buldum.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Merhaba!
Uzman Danışmanımın kodunda bir hata arıyordum ve bir yanlış anlaşılmayla karşılaştım - OnTick() işlevindeki if() deyimini test ederken yalnızca bir kez çalışıyor, sonraki tik ve çubuklarda çalışmıyor.
Niye ya? Ekli kod parçasında yanlış olan nedir?
Değişkenlerin yeniden atandığı yere bakın. Her şeyden önce, ClsS'nin nerede = false olduğunu bulun; ve yapılır mı?
İŞLER! TEŞEKKÜR ETMEK!
Gidip daha fazla kontrol edeceğim. Tekrar teşekkürler.
göstergede programlı olarak nasıl yapılır?
asistanda nasıl soracağımı bilmiyorum.
Belki birileri buraya belirli bir bağlantı veya anahtar kelimeler atar.
Grafik Özelliklerine Bakın ChartGetInteger () ve CHART_WINDOW_IS_VISIBLE
Hepinize iyi günler! Ve şimdi soru sıra dışı ..... Başlat işlevini sunuyorum. Soru, her yeni çubukta N değişkeninin neden iki katına çıktığıdır. Her yeni çubukla, ancak bunu SADECE yeni bir sinyal geldiğinde yapmalı???
Geliştiriciler buna ne diyecek???
Merhaba!
Belki birileri zaten böyle bir sorunla karşılaştı ve nedenini ve çözümünü biliyor mu?
EA, test cihazında iyi çalışır ve mevcut kotasyonlarda etkinleştirildiğinde, kriterlere göre açılan pozisyon bir sonraki KAYIP GİDİYOR tikinde kapatılır (Artı işareti etkilemez). Dış müdahalenin tam izlenimi. Buradaki sorun ne olabilir? Teşekkür ederim.
Merhaba!
Belki birileri zaten böyle bir sorunla karşılaştı ve nedenini ve çözümünü biliyor mu?
EA, test cihazında iyi çalışır ve mevcut kotasyonlarda etkinleştirildiğinde, kriterlere göre açılan pozisyon bir sonraki KAYIP GİDİYOR tikinde kapatılır (Artı işareti etkilemez). Dış müdahalenin tam izlenimi. Buradaki sorun ne olabilir? Teşekkür ederim.
Kod olmadan sadece medyumlar yardımcı olacaktır. Bir yerde ip vardı. soru sormak lazım
"Şaka mizahı" her zaman bir artıdır!
Kodun tamamı buraya gönderilemeyecek kadar büyük. Ancak şablon olarak Sleptsov'un hazır danışmanı kullanılarak yazılmıştır. Ticaret kriterleri için yalnızca gösterge yığınlarını ve kendi koşullarımı ekledim. Nedeni hala bazı ön kod ayarlarında olduğunu düşünüyorum, ancak bunları orijinaliyle tamamen aynı buldum.