[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 414
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Onlar. bir pencere tanıtıcısı, 0'dan (ana pencere) başlayan yalnızca bir pencerenin SIRALI NUMARASI mı?
Değil
Herkese iyi günler! ezme üzerine bir Uzman Danışman yazarken, daha doğru çıkış noktaları arıyordum ve RSI (8) ile ADX (25) kesişimine rastladım. Görsel olarak, bir demoda manuel ticaret ile her şey yolunda.
Soru, bir Uzman Danışmanda RSI (8) ile ADX(25) DI+'ı geçme koşulunun nasıl yazılacağıdır, örneğin, RSI'nin (8) 0 ile 100 arasında limitleri varsa ve ADX(25)'in limitleri yoksa. yani, ADX'i sınır belirtmeden çizelgeye atarsanız ve ardından üzerine RSI atarsanız, RSI max ve min ADX ile ölçeklenir. ADX sınırları 0 ile 100 arasındaysa, ADX ile RSI arasında çok az açık kesişim olacaktır.
ADX ile ölçeklendiğinde RSI değerini belirlemek mümkün müdür?
Değil
ADX ile ölçeklendiğinde RSI değerini belirlemek mümkün müdür?
Yaklaşık 8 parametrenin bulunduğu bir göstergem var, tüm parametreleri doğru giriyorum, birkaç kez kontrol ettim, ancak derleme sırasında ')' hatası hala görünüyor - yanlış parametre sayısı D:\InstaTrader\experts\Expert_2.mq4 ( 11, 280)
Söyle bana, iCustom üzerinden bağlanırken standart olmayan bir göstergedeki parametre sayısında bir sınır var mı?
Yaklaşık 8 parametrenin bulunduğu bir göstergem var, tüm parametreleri doğru giriyorum, birkaç kez kontrol ettim, ancak derleme sırasında ')' hatası hala görünüyor - yanlış parametre sayısı D:\InstaTrader\experts\Expert_2.mq4 ( 11, 280)
????... zorlaştırmıyorsa, lütfen daha ayrıntılı bir cevap verin... ve en azından örnek olarak bazı basit senaryolar verilse, bu harika olurdu, ki bunlardan hala neyin ne olduğu anlaşılabilir. WindowHandle işlevi için
Mevcut bilgi düzeyinde, buna gerçekten ihtiyacınız yok.
Bir programcı olmak istiyorsanız, Google'ın yardımıyla bilimi kemirin. " Pencere tanıtıcı sitesi:mql4.com " isteği
Programlama gurularından sorum üzerine şunu söylemelerini istiyorum, bu danışmanı yapmak gerçekten mümkün mü?
her şey mümkün, bir arzu olurdu
aşağıdaki şeylere bakın:
1) çubuk açma kontrolü
2) SiparişGönder
ve dene ve gurular düzeltecek
Burada danışmanın, siparişin sadece kavşakta değil, mumun KAPANIŞINDA açılması için yapılması gerekir.
Yardımcı olabilecek herkes, şimdiden teşekkürler.
//+------------------------------------------- --------------------+
//| RSI_MA.mq4 |
//| Telif Hakkı © 2008, AEliseev k800elik@gmail.com |
//| http://www.metaquotes.net |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı © 2008, Andrey E. k800elik@gmail.com"
#özellik bağlantısı "http://www.metaquotes.net"
//---- giriş parametreleri
harici int CCI_Per=14;
harici int MA_Per=20;
harici int CCI_close_Per=14;
harici çift TakeProfit=500;
harici çift StopLoss=150;
dış çift Lot=0.01;
harici int Mevduat=1000;
harici bool MM=yanlış;
harici int _MagicNumber = 13131313;
harici int _Uyku=5000;
int LotA=1, Hata=0;
int j=0,var2,var1;
int sayaç=0;
int bileti;
bool var3;
bool sırası=yanlış;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
Comment("CCI_MA v1.5 © 2008, Andrey E. k800elik@gmail.com");
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
/* int i, a1, a2;
//----
if (Sipariş Toplamı()>0)
{
(i=0; i==SiparişToplam(); i++) için
{
OrderSelect(i,SELECT_BY_POS);
if (OrderMagicNumber()==131313)
{
a1=SiparişKapat(ÇokA*Çok,Sor,5,Kırmızı);
//a2=SiparişKapat(var1,LotA*Lots,Ask,5,Red);
}
}
} */
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
//----
if (isNewBar()) EveryBar();
EveryTick();
//----
dönüş(0);
}
//+------------------------------------------- --------------------+
//+------------------------------------------- --------------------+
//| Yeni bir bar aranıyor |
//+------------------------------------------- --------------------+
bool isNewBar()
{ statik tarihsaat Zaman Çubuğu=0;
bool flag=yanlış;
if(Zaman Çubuğu!=Zaman[0])
{
Zaman Çubuğu=Zaman[0];
bayrak=doğru;
}
dönüş(bayrak);
}
//+------------------------------------------- --------------------+
//| Yeni bir çubuk göründüğünde eylemleri gerçekleştirme |
//+------------------------------------------- --------------------+
EveryBar'ı geçersiz kıl()
{
// Print("YENİ BAR geldi!");
double MA[100], CCI[100], CCIclose[100], StandDevi[100];
int i,limit=ArraySize(CCI);
çift SL, TP;
Uyku uyku);
SL = NormalizeDouble(Sor - Kaybı Durdur*Puan, Rakamlar);
TP = NormalizeDouble(Sor + Kâr Al*Puan, Rakamlar);
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i);
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i);
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i);
}
// Yeni bir sipariş açmak için yeterli para olup olmadığını kontrol edin
if(AccountFreeMargin()<(1000*Lots))
{
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}
//============================================== ================================
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
//---- tüm açık pozisyonlar arasında döngü
for ( int z = _Sipariş Toplamı - 1; z >= 0; z -- )
{
//---- pozisyon seçerken bir hata oluştuysa sonrakine geç
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print( "OrderSelect( ",z, ", SELECT_BY_POS ) - Hata #", _GetLastError);
devam etmek;
}
// mevcut enstrüman için pozisyon açılmamışsa, atla
eğer ( OrderSymbol() != Symbol() ) devam ederse;
// MagicNumber, _MagicNumber'a eşit değilse, atla
// bu pozisyon
eğer ( OrderMagicNumber() != _MagicNumber ) devam ederse;
//---- bir AL pozisyonu açıksa,
if ( OrderType() == OP_BUY )
{
//---- CCI 190. satırı geçerse
if (((CCIclose[2]>190) && (CCIclose[1]<=100)) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit] -MA_Per-2]))
{
//---- pozisyonu kapat
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 10, Green ) )
{
_GetLastError = GetLastError();
Print("Hata SiparişKapat #", _GetLastError );
Hata=1;
dönüş(-1);
}
}
// sinyal değişmediyse, çıkın - açmak için çok erken
// yeni pozisyon
başka
{ dönüş(0); }
}
//---- bir SATIŞ pozisyonu açıksa,
if ( OrderType() == OP_SELL )
{
//---- CCİ -190 çizgisini yukarı doğru geçerse,
if (((CCIclose[2]<-190) && (CCIclose[1]>=-300)) || ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<= MA[limit-MA_Per-2])))
{
//---- pozisyonu kapat
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 10, Red ))
{
_GetLastError = GetLastError();
Print("Hata SiparişKapat #", _GetLastError );
Hata=2;
dönüş(-1);
}
}
// sinyal değişmediyse, çıkın - açmak için çok erken
// yeni pozisyon
başka dönüş (0);
}
}
//+------------------------------------------- --------------------+
//| yürütme bu noktaya ulaştıysa, açık pozisyon yoktur |
//| pozisyon açmanın mümkün olup olmadığını kontrol edin |
//+------------------------------------------- --------------------+
Uyku uyku);
//---- CCI MACD'yi aşağıdan yukarıya geçerse,
SL = NormalizeDouble(Teklif - Kaybı Durdur*Puan, Rakamlar);
TP = NormalizeDouble(Teklif + Kâr Al*Puan, Rakamlar);
if ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<MA[limit-MA_Per-2]))
{
//---- bir SATIN AL pozisyonu aç
if(OrderSend( Symbol(), OP_BUY, LotA*Lots, Ask, 5, SL, TP, "CCI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError();
Print( "Hata SiparişGönder OP_SATIN AL Hayır ", _GetLastError );
Hata=3;
dönüş(-1);
}
dönüş(0);
}
//---- CCI MACD'yi yukarıdan aşağıya geçerse,
SL = NormalizeDouble(Sor + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Ask - TakeProfit*Puan, Rakamlar);
if ((CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>MA[limit-MA_Per-2]))
{
//---- bir SATIŞ pozisyonu aç
if(OrderSend( Symbol(), OP_SELL, LotA*Lots, Bid, 5, SL, TP, "CCI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError();
Print( "Hata SiparişGönder OP_SEL # ", _GetLastError );
Hata=4;
dönüş(-1);
}
dönüş(0);
}
}
//+------------------------------------------- --------------------+
//| Her fiyat değişikliğinde hesaplamalar yapın |
//+------------------------------------------- --------------------+
EveryTick()'i geçersiz kıl
{
int i;
eğer (MM==doğru)
{
if (AccountBalance()>(2*Para Yatırma)) LotA=2;
if (AccountBalance()>(3*Yatırılan)) LotA=3;
if (AccountBalance()>(4*Para Yatırma)) LotA=4;
if (AccountBalance()>(5*Yatırılan)) LotA=5;
if (AccountBalance()>(6*Yatırılan)) LotA=6;
if (HesapBalance()>(7*Yatırılan)) LotA=7;
if (AccountBalance()>(8*Yatırılan)) LotA=8;
if (AccountBalance()>(9*Yatırılan)) LotA=9;
if (AccountBalance()>(10*Yatırılan)) LotA=10;
if (HesapBalance()>(11*Yatırılan)) LotA=11;
if (AccountBalance()>(12*Yatırılan)) LotA=12;
if (AccountBalance()>(13*Yatırılan)) LotA=13;
if (AccountBalance()>(14*Yatırılan)) LotA=14;
if (AccountBalance()>(15*Yatırılan)) LotA=15;
if (AccountBalance()>(16*Yatırılan)) LotA=16;
if (AccountBalance()>(17*Para Yatırma)) LotA=17;
if (AccountBalance()>(18*Yatırılan)) LotA=18;
if (AccountBalance()>(19*Yatırılan)) LotA=19;
if (AccountBalance()>(20*Para Yatırma)) LotA=20;
}
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
intz;
çift SL, TP;
double MA[100], CCI[100], CCIclose[100], StandDevi[100];
int limit=ArraySize(CCI);
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i);
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i);
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i);
}
geçiş(hata)
{
dava 1:
for ( z=_Sipariş Toplamı - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print( "OrderSelect( ",z, ", SELECT_BY_POS ) - Hata #", _GetLastError);
devam etmek;
}
eğer ( OrderSymbol() != Symbol() ) devam ederse;
eğer ( OrderMagicNumber() != _MagicNumber ) devam ederse;
if ( OrderType() == OP_BUY )
{
if (((CCIclose[2]>300) && (CCIclose[1]<=300)) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit -MA_Per-2]))
{
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green ) )
{
_GetLastError = GetLastError();
Print("Hata DURUMUNDA OrderClose # ", _GetLastError );
Hata=1;
dönüş(-1);
}
başka Hata=0;
}
}
}
kırmak;
//============================================== ============================
durum 2:
for ( z=_Sipariş Toplamı - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print( "OrderSelect( ",z, ", SELECT_BY_POS ) - Hata #", _GetLastError);
devam etmek;
}
eğer ( OrderSymbol() != Symbol() ) devam ederse;
eğer ( OrderMagicNumber() != _MagicNumber ) devam ederse;
if ( OrderType() == OP_SELL )
{
if (((CCIclose[2]<-300) && (CCIclose[1]>=-300)) || ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<= MA[limit-MA_Per-2])))
{
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 5, Red ))
{
_GetLastError = GetLastError();
Print("Hata DURUMUNDA OrderClose # ", _GetLastError );
Hata=2;
dönüş(-1);
}
başka Hata=0;
}
}
}
kırmak;
//============================================== =============================
durum 3:
SL = NormalizeDouble(Teklif - Kaybı Durdur*Puan, Rakamlar);
TP = NormalizeDouble(Teklif + Kâr Al*Puan, Rakamlar);
if(OrderSend( Symbol(), OP_BUY, LotA*Lots, Ask, 7, SL, TP, "AI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError();
Print( "Hata OLASI SiparişGönder OP_SATIN AL Hayır ", _GetLastError );
Hata=3;
dönüş(-1);
}
başka Hata=0;
kırmak;
//============================================== ==================================
durum 4:
SL = NormalizeDouble(Sor + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Ask - TakeProfit*Puan, Rakamlar);
if(OrderSend( Symbol(), OP_SELL, LotA*Lots, Bid, 7, SL, TP, "AI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError();
Print("Hata DURUMUNDA SiparişGönder OP_SEL # ", _GetLastError );
Hata=4;
dönüş(-1);
}
başka Hata=0;
kırmak;
}
}