[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 698

 
valenok2003 :

telif hakkı
 string copyright = "\xA9" ;
 
ToLik_SRGV :

teşekkür ederim
 
Yine sorduğum soruya dönüyorum https://forum.mql4.com/en/15972/page693 - burada göstergeler ve göstergeler arasında parametre geçişi - uzmanlar. Global değişkenlerin önerilen kullanımı elbette bu sorunu kısmen çözüyor, ancak başka bir soru ortaya çıktı! Global değişkenlerin tanımına göre ......... GV değişkeni sadece double tipte olabilir, ancak bir Expert Advisor, global bir değişkenin değerini alırken, değişkenin bir değişkenden alındığını nasıl bilebilir? belirli bir sembol ve belirli bir zaman dilimi?
 
Infinity :
Yine sorduğum soruya dönüyorum https://forum.mql4.com/en/15972/page693 - burada göstergeler ve göstergeler arasında parametre geçişi - uzmanlar. Global değişkenlerin önerilen kullanımı elbette bu sorunu kısmen çözüyor, ancak başka bir soru ortaya çıktı! Global değişkenlerin tanımına göre ......... GV değişkeni sadece double türünde olabilir, ancak bir Expert Advisor, global bir değişkenin değerini alırken değişkenin bir değişkenden alındığını nasıl bilebilir? belirli bir sembol ve belirli bir zaman dilimi?

Karakterleri kodlayın. Bunun için değişken isimleri kullanabilseniz de, örneğin EUSRUSD_H1_Var1
 
cyclik33 :


Martin ilavesiyle Gorando programında yapılmıştır.

//+------------------------------------------- --------------------+
//| Telif Hakkı 2005 Gordago Yazılım A.Ş. |
//| http://www.gordago.com/ |
//| sürüm 2.0 |
//+------------------------------------------- --------------------+




geçersiz OpenBuy() {
çift dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;

if (isLossLastPos(NULL, -1, MAGIC))
Çok_Yeni *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Çok;


eğer (dBuyStopLossPoint > 0)
dStopLoss = Teklif-dBuyStopLossPoint*Puan;

if (dBuyTakeProfitPoint > 0)
dTakeProfit = Teklif + dBuyTakeProfitPoint * Puan;

int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);

if (sayı > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

geçersiz OpenSell() {
çift dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;

if (isLossLastPos(NULL, -1, MAGIC))
Çok_Yeni *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Çok;

if (dSellStopLossPoint > 0)
dStopLoss = Sor+dSellStopLossPoint*Puan;

if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Puan;

int numorder = OrderSend(Symbol(),OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);

if (sayı > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

Sen

geçersiz OpenBuy() {

çift dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;

if (isLossLastPos(NULL, -1, MAGIC))
Çok_Yeni *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))

Lots_New = Çok;

Bu bir fonksiyondur ve bu fonksiyonun en başında Lots_New değişkenine = Lot değerini atarsınız;

Her zaman orijinal durumuna geri getirirseniz daha sonra nasıl değişeceğini düşünün?

Sana nereye yazmanı söyledim? Başlatma işlevinden önce harici değişkenlerde ...

Ve parti değerini doğru boyuta normalleştirin:

Lots_New = NormalizeLot(Lot*2, False, "");

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает нормализованное значение торгуемого лота.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    lo - нормализуемое значение лота.                                       |
//|    ro - способ округления          (   False    - в меньшую,               |
//|                                        True     - в большую сторону)       |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//+----------------------------------------------------------------------------+
double NormalizeLot( double lo, bool ro=False, string sy= "" ) {
   double l, k;
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double ls=MarketInfo(sy, MODE_LOTSTEP);
   double ml=MarketInfo(sy, MODE_MINLOT);
   double mx=MarketInfo(sy, MODE_MAXLOT);

   if (ml== 0 ) ml= 0.1 ;
   if (mx== 0 ) mx= 100 ;

   if (ls> 0 ) k= 1 /ls; else k= 1 /ml;
   if (ro) l= MathCeil (lo*k)/k; else l= MathFloor (lo*k)/k;

   if (l<ml) l=ml;
   if (l>mx) l=mx;

   return (l);
}
 
Vinin :

Karakterleri kodlayın. Bunun için değişken isimleri kullanabilseniz de, örneğin EUSRUSD_H1_Var1


kesinlikle! teşekkür etmek! Ama yine de net değil... olası karakter sayısının tamamına karşılık gelen tüm değişken adlarını göstergeye yazmam gerekecek. Ve belirli bir an geldiğinde göstergeden bir parametre iletmek istersem, göstergeye o anda göstergenin bulunduğu sembolü belirleme kodunu yazmam gerekecek. Ardından, karşılaştırma işlevini veya diğer durum türlerini kullanarak, parametrenin hangi adlandırılmış global değişkene yazılacağını belirleyin! Her şeyi doğru anlıyorum! ?

Ve işte başka bir retorik soru ya da fikrinizi almak için. Analizin doğasında sözde "kalıplar" vardır. Kalıplar, belirli tekrar eden anlara (veya parametrelere) dayalı kalıplardan başka bir şey değildir. Ancak ne yazık ki, piyasa istikrarsız bir maddedir ve bu nedenle, bir dereceye kadar, her bir modele, bir modelin oluşumuna sadık kalarak, yanlış bir şablon olarak yaklaşılabilir veya belirli parametrelerden biraz sapılabilir. Analiz için herhangi bir zaman dilimini temel alırsak, örneğin - üzerinde belirli koşullar altında ortaya çıkan kalıpların varlığı için 15 dakika, o zaman grafikte belirli sayıda kalıp olacağı ortaya çıkıyor. Ve kalıbın oluşmadığı belirli sayıda durum, ancak bu durumlar kalıbın oluşumuna yakındı, sadece belirli parametrelere uymadılar (biraz saptılar). Bu durum, desenleme koşullarının yumuşatılmasıyla önlenebilir. Bu durumda, pazara girmek için daha fazla kalıp ve fırsat olacaktır, ancak parametreler kesin olarak belirlenmediği için yanlış kalıpların sayısı artacaktır. (Sıkı parametrelerle, desenin bu koşullarla bir günde bile görünmeyebileceğini de hesaba katarsak).

Soru! o zaman bir modelin oluşumunu hangi parametrelerle (sert bir koşulla veya yumuşak bir koşulla) kullanacaksınız!

 

Sorunu çözmeye yardım edin!


Açtığım veya beklettiğim siparişler için arama yapıyorum. Eğer öyleyse, sonra bunun ne tür bir alış veya satış emri olduğunu belirlerim. Belirli koşullar altında (eğer biri diğerinden büyükse ve ayrıca üçüncüden küçükse), o zaman bu siparişi kapatmak istiyorum. İçindeki ayarları değiştirin ve tekrar açın.

Sorun, bir siparişi kapatmak ve açmak için sinyalin sürekli olarak mevcut olmasıdır. Bu nedenle siparişim kapanıyor ve tekrar açılıyor ve bu şekilde açılıp kapanıyor...)))

Bu sorun nasıl çözülür? Ha


 
Infinity :


kesinlikle! teşekkür etmek! Ama yine de net değil... olası karakter sayısının tamamına karşılık gelen tüm değişken adlarını göstergeye yazmam gerekecek. Ve belirli bir an geldiğinde göstergeden bir parametre iletmek istersem, göstergeye o anda göstergenin bulunduğu sembolü belirleme kodunu yazmam gerekecek. Ardından, karşılaştırma işlevini veya diğer durum türlerini kullanarak, parametrenin hangi adlandırılmış global değişkene yazılacağını belirleyin! Her şeyi doğru anlıyorum! ?

Ve işte başka bir retorik soru ya da fikrinizi almak için. Analizin doğasında sözde "kalıplar" vardır. Kalıplar, belirli tekrar eden anlara (veya parametrelere) dayalı kalıplardan başka bir şey değildir. Ancak ne yazık ki, piyasa istikrarsız bir maddedir ve bu nedenle, bir dereceye kadar, her bir modele, bir modelin oluşumuna sadık kalarak, yanlış bir şablon olarak yaklaşılabilir veya belirli parametrelerden biraz sapılabilir. Analiz için herhangi bir zaman dilimini temel alırsak, örneğin - üzerinde belirli koşullar altında ortaya çıkan kalıpların varlığı için 15 dakika, o zaman grafikte belirli sayıda kalıp olacağı ortaya çıkıyor. Ve kalıbın oluşmadığı belirli sayıda durum, ancak bu durumlar kalıbın oluşumuna yakındı, sadece belirli parametrelere uymadılar (biraz saptılar). Bu durum, desenleme koşullarının yumuşatılmasıyla önlenebilir. Bu durumda, pazara girmek için daha fazla kalıp ve fırsat olacaktır, ancak parametreler kesin olarak belirlenmediği için yanlış kalıpların sayısı artacaktır. (Sıkı parametrelerle, desenin bu koşullarla bir günde bile görünmeyebileceğini de hesaba katarsak).

Soru! o zaman bir modelin oluşumunu hangi parametrelerle (sert bir koşulla veya yumuşak bir koşulla) kullanacaksınız!

Bunu parametrelerle, ancak kalıplarla yapabilirsiniz. Önce kriterleri belirlememiz gerekiyor. Öyle görünmüyor. Ve eğer öyleyse, nasıl. En azından ne kadar (yüzde). Bir durumda, zaman bileşeni, diğerinde fiyat. Bunları birbirleriyle nasıl ilişkilendirebiliriz. Yine de bir nöron ekleyebilirsiniz. Kohonen katmanı bunu iyi yapıyor.
 

Sorunu çözmeye yardım edin!


Açtığım veya beklettiğim siparişler için arama yapıyorum. Eğer öyleyse, sonra bunun ne tür bir alış veya satış emri olduğunu belirlerim. Belirli koşullar altında (eğer biri diğerinden büyükse ve ayrıca üçüncüden küçükse), o zaman bu siparişi kapatmak istiyorum. İçindeki ayarları değiştirin ve tekrar açın.

Sorun, bir siparişi kapatmak ve açmak için sinyalin sürekli olarak mevcut olmasıdır. Bu nedenle siparişim kapanıyor ve tekrar açılıyor ve bu şekilde açılıp kapanıyor...)))

Bu sorun nasıl çözülür? Ha
 
Necron :
Roger, teşekkürler, ama yine de doğru çalışmıyor. Başka bir izi sabitlemeye çalıştım, ancak hata hala devam ediyor :( Aynı anda bir poz ve birkaç poz için iz herhangi bir şeyde farklılık gösteriyor mu?

Po değişkenini işlevin başında tanımladığınızı anlıyorum, ancak onu herhangi bir yere atamıyorsunuz, yani. 0'a eşittir.