[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 414

 
7777877 :
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?

 
PapaYozh :

Değil
????... 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 ne anlaşılabiliyordu? WindowHandle işlevi için
 
drimara : yani sınırlar belirtmeden tabloya ADX atarsanız ve ardından üzerine RSI atarsanız, RSI ADX max ve min 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?

Ve bundan sonra sola ve sağa hareket ederseniz, kesişme noktaları yürümeye başlayacaktır.
 
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)
 
sss2019 :
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)
kodu göster + göstergedeki giriş parametreleri nelerdir
 
7777877 :
????... 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ü?
 
stater :
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;

}

}

Neden: