MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 870

 
Alexey G. Smolyakov :
MQL4\Indicators\Used klasörünün tam yolu. Klasörden çıkış yok gibi görünüyor. Ancak bu konudan bir sapmadır - diğer danışmanlar göstergeleriyle benzer klasörlerde sorunsuz çalışır. Ancak bu göstergede neyin yanlış olduğunu anlamıyorum. Koduna baktım ama çözecek kadar bilgi ve tecrübe yok. Sadece son çubuğu ya da buna benzer bir şeyi saydığına dair bir şüphe var.

o zaman her şey yolunda

terminalde Ctrl + D tuşlarına basın - bir veri penceresi açılacak, göstergeyi tabloya bırakacak ve veri penceresinde gösterge arabelleklerini ve her çubukta değerlerini göreceksiniz, aynı sayıları iCustom() aracılığıyla alacaksınız

not; bazı çubuklarda EMPTY_VALUE değerine sahip göstergeler var - veri penceresinde boş bir hücre olacak (göstergenin yazarının, örneğin EMPTY_VALUE yerine 0.0'ı ayarlamadığı bir gerçek değil - kontrol etmeniz gerekiyor)

daha sonra, iCustom()'u çağırırken, alınan değeri EMPTY_VALUE ile karşılaştırmanız gerekir. Bir dosyaya ZigZag veya ZigZag yüklemesinde Uzman Danışmanlar için kod tabanına bakın - orada EMPTY_VALUE göstergesinin boş değerleriyle nasıl çalışılacağına dair hazır bir örnek göreceksiniz

 
Igor Makanu :

o zaman her şey yolunda

terminalde Ctrl + D tuşlarına basın - bir veri penceresi açılacak, göstergeyi tabloya bırakacak ve veri penceresinde gösterge arabelleklerini ve her çubukta değerlerini göreceksiniz, aynı sayıları iCustom() aracılığıyla alacaksınız

not; bazı çubuklarda EMPTY_VALUE değerine sahip göstergeler var - veri penceresinde boş bir hücre olacak (göstergenin yazarının, örneğin EMPTY_VALUE yerine 0.0'ı ayarlamadığı bir gerçek değil - kontrol etmeniz gerekiyor)

daha sonra, iCustom()'u çağırırken, alınan değeri EMPTY_VALUE ile karşılaştırmanız gerekir. Bir dosyaya ZigZag veya ZigZag yüklemesinde Uzman Danışmanlar için kod tabanına bakın - orada EMPTY_VALUE göstergesinin boş değerleriyle nasıl çalışılacağına dair hazır bir örnek göreceksiniz

Teşekkürler, EMPTY_VALUE için değerleri kontrol etmek yardımcı oldu.
 
Tünaydın. Ayarlarda nelerin ayarlandığını gösteren bir fonksiyon nasıl yapılır (Yalnızca Uzun / Yalnızca Kısa / Uzun ve Kısa). bu şekilde denedim ama olmuyor
 string LSset()
{
string LS;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) == SYMBOL_TRADE_MODE_LONGONLY ) LS= "ONLY LONG" ;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) == SYMBOL_TRADE_MODE_SHORTONLY ) LS= "ONLY SHORT" ;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) != SYMBOL_TRADE_MODE_SHORTONLY && 
   SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) != SYMBOL_TRADE_MODE_LONGONLY ) LS= "LONG & SHORT" ;
return (LS);
}
Dosyalar:
 
Lomonosov1991 :
Tünaydın. Ayarlarda nelerin ayarlandığını gösteren bir fonksiyon nasıl yapılır (Yalnızca Uzun / Yalnızca Kısa / Uzun ve Kısa). bu şekilde denedim ama olmuyor

Bu yüzden çalışmamalı. Böyle bir işlev yazmak mümkündür, ancak yeni başlayanlar için zordur.

 
fxsaber :

Bu yüzden çalışmamalı. Böyle bir işlev yazmak mümkündür, ancak yeni başlayanlar için zordur.

arama sürücüleri, birkaç yıl önce geliştiriciler bu ayarlara uzmandan erişmeye söz verdiler, ancak hiçbir zaman yapmadılar

çözüm https://www.mql5.com/ru/forum/121619#comment_3208150

dll ile çözüm, neden gerekli olduğunu bilmiyorum https://www.mql5.com/en/forum/231434/page2#comment_6773340

Not: Kontrol etmedim ama konu aratınca grafik şablonunu uygularken bu ayarları kaydetmeme sorunu devam etmiş görünüyor

LongOnly, ShortOnly or Long&Short?
LongOnly, ShortOnly or Long&Short?
  • 2009.11.03
  • www.mql5.com
Не подсажет ли кто нибудь как внутри советника оределить в каком режиме он запущен LongOnly, ShortOnly or Long&Short? Заранее спасибо...
 
extern int punkt= 100 ;
extern int Ordersss= 3 ;
extern double xxx= 1.2 ;

int PunktsX()
{
   int P=punkt;                             
   int i;
   for (i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return (P);
}

Ortalama Uzman Danışman için bir işlev yaptı. 3'ten fazla sipariş açıksa, sonraki her sipariş daha fazla açılacaktır.

ancak uyarıyı düzeltemez (tür dönüşümü nedeniyle olası veri kaybı )

lütfen bana nasıl olacağımı söyle)

 
Lomonosov1991 :

Ortalama Uzman Danışman için bir işlev yaptı. 3'ten fazla sipariş açıksa, sonraki her sipariş daha fazla açılacaktır.

ancak uyarıyı düzeltemez (tür dönüşümü nedeniyle olası veri kaybı )

lütfen bana nasıl olacağımı söyle)

 P= ( int )(P*xxx);

Daha doğru bir hesaplama için, muhtemelen böylesi daha iyi

 extern int punkt= 100 ;
extern int Ordersss= 3 ;
extern double xxx= 1.2 ;

int PunktsX()
{
   double P=punkt;                             
   int i;
   for (i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return ( int ) P;
}
 
Konstantin Nikitin :

Daha doğru bir hesaplama için, muhtemelen böylesi daha iyi

teşekkürler) Bunu iade ile yapabileceğinizi bilmiyordum)

 
Igor Makanu :

arama sürücüleri, birkaç yıl önce geliştiriciler bu ayarlara uzmandan erişmeye söz verdiler, ancak hiçbir zaman yapmadılar

çözüm https://www.mql5.com/ru/forum/121619#comment_3208150

dll ile çözüm, neden gerekli olduğunu bilmiyorum https://www.mql5.com/ru/forum/231434/page2#comment_6773340

Not: Kontrol etmedim ama konu aratınca grafik şablonunu uygularken bu ayarları kaydetmeme sorunu devam etmiş görünüyor

teşekkürler deneyeceğim)

 
Lomonosov1991 :

teşekkürler deneyeceğim)

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Kütüphaneler: Uzman

fxsaber , 2019.06.04 16:40

 // MT4-советник показывает, в каком режиме Long/Short был запущен.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

int GetLongShortFlag( const int Chart_ID = 0 )
{
   MqlParam Params[];
   string Names[];
  
   const int Res = EXPERT::Parameters(Chart_ID, Params, Names);
  
   return (((Res & 3 ) << 1 ) + (Res & 1 ));
}

string LongShortToString( const int Chart_ID = 0 )
{
   const int Flag = GetLongShortFlag(Chart_ID);
   string Str = NULL ;
  
   if (( bool )(Flag & SYMBOL_TRADE_MODE_LONGONLY ) && ( bool )(Flag & SYMBOL_TRADE_MODE_SHORTONLY ))
    Str = "Long & Short" ;
   else if (( bool )(Flag & SYMBOL_TRADE_MODE_LONGONLY ))
    Str = "Only Long" ;
   else if (( bool )(Flag & SYMBOL_TRADE_MODE_SHORTONLY ))
    Str = "Only Short" ;
    
   return (Str);
}

int OnInit ()
{
   Alert (LongShortToString());
  
   return ( INIT_FAILED );
}