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

 
Yurij Kozhevnikov :

Giriş parametreleri, grafik periyodu vb. değiştirilirken statik değişkenler yeniden başlatılmaz.

Kulakları zorla yeniden başlatmak için bir hile var mı? Kabaca daha uzun bir yol hayal edebiliyorum, basit ve kısa bir yol var mı?

Oninit'te başlat ve statik yapmayın. Birden

 
Teşekkür ederim. Bir gülümseme her zaman olumsuzdan daha iyidir.
 
Hey! AMP Global'den MT5'teki sunucu çöktü. Ağı yeniden taramak yardımcı olmuyor. Yeniden başlatma da yardımcı olmuyor.
Dosyalar:
 

Havai fişek!

Hata ne anlama geliyor: "geçersiz ex4 dosyası (7)" ve "genel başlatma başarısız"?

 
Yurij Kozhevnikov :
Teşekkür ederim. Bir gülümseme her zaman olumsuzdan daha iyidir.
Alakalı olmayan olumsuz şeyler ifade ettiğimi hatırlamadığım bir şey, ama neyse...

MQL tam olarak (hiç değil) C artı artı değil. Fonksiyonların statik sınıf üyeleri veya değişkenleri olmamalıdır. Pek çok soruna neden olurlar ve bu sorunların yerini tespit etmek zordur.

Sadece en üst düzeyde, belirli bir Uzman Danışmanda, çok düşündükten sonra.
 

Merhaba sana!!!

  1. Bir dizi değer var - 500   MA   her çubuk için

Ortaya çıkan demetler nasıl hesaplanabilir? :

- Yön değiştirirken?

Bana Kohonen Haritalarına dalmamı tavsiye ettiler ama çözemedim!

 
Top2n :

Merhaba sana!!!

  1. Bir dizi değer var - 500   MA   her çubuk için

Ortaya çıkan demetler nasıl hesaplanabilir? :

- Yön değiştirirken?

Bana Kohonen Haritalarına dalmamı tavsiye ettiler ama çözemedim!

ve hangi MA'larınız var?

SMA ise, o zaman belki okul aritmetiği ile idare edebilirsiniz. Sadece formülü hatırla :-)

 

Havai fişek!
Durağı başa baş noktasına taşıyan bir kod vardır (örneğin satışlar için):

 if ( PositionGetDouble ( POSITION_SL )> PositionGetDouble ( POSITION_PRICE_OPEN ) && ask()< PositionGetDouble ( POSITION_PRICE_OPEN )-BreakEven) {
                     //Comment("Modify sell");
                     MqlTradeRequest request;
                     MqlTradeResult   result;
                     ulong   position_ticket  = PositionGetTicket (i); // тикет позиции
                     string position_symbol  = PositionGetString ( POSITION_SYMBOL ); // символ
                     int     digits           = ( int ) SymbolInfoInteger (position_symbol, SYMBOL_DIGITS ); // количество знаков после запятой

                     double sl               = PositionGetDouble ( POSITION_PRICE_OPEN );   // Stop Loss позиции

                     double tp               = PositionGetDouble ( POSITION_TP );   // Take Profit позиции
                     ENUM_POSITION_TYPE type = ( ENUM_POSITION_TYPE ) PositionGetInteger ( POSITION_TYPE );   // тип позиции
                     ZeroMemory (request);
                     ZeroMemory (result);
                     request.action          = TRADE_ACTION_SLTP ; // тип торговой операции
                     request.position        = position_ticket;   // тикет позиции
                     request.symbol          = position_symbol;     // символ
                     request.sl              = NormalizeDouble (sl,digits);                 // Stop Loss позиции
                     request.tp              = tp;                 // Take Profit позиции
                     request.magic = Magic;

                     //--- вывод информации о модификации
                     PrintFormat ( "BreakEven POSITION_TYPE_SELL Modify #%I64d %s %s" ,position_ticket,position_symbol, EnumToString (type));
                     //--- отправка запроса
                     if (! OrderSend (request,result))
                         PrintFormat ( "BreakEven POSITION_TYPE_SELL OrderSend error %d" , GetLastError ());   // если отправить запрос не удалось, вывести код ошибки
                     //--- информация об операции
                     PrintFormat ( "BreakEven POSITION_TYPE_SELL retcode=%u  deal=%I64u  order=%I64u" ,result.retcode,result.deal,result.order);
                  }

Açık fiyat seviyesinde stop tanım satırı aşağıdaki gibi ise:

 double sl               = PositionGetDouble ( POSITION_PRICE_OPEN );   // Stop Loss позиции

sonra normları, sorunsuz bir şekilde durdurur.

Ama buraya ekler eklemez açılış fiyatından değil de daha düşük fiyattan olsun:

 double sl               = PositionGetDouble ( POSITION_PRICE_OPEN )- SymbolInfoDouble ( _Symbol , SYMBOL_POINT );   // Stop Loss позиции

veya:

 double sl               = PositionGetDouble ( POSITION_PRICE_OPEN )-1.0;   // Stop Loss позиции (для РТС например и других фондовых штуковин)

Bu hemen sorunları ortadan kaldırır. Yanlış ayaklar yazıyor, diyorlar:

2020.07.29 13:06:24.127 Trades  '723763': failed modify #16003799 sell 1 RTS-9.20 sl: 126900, tp: 124470 -> sl: 126379, tp: 124470 [Invalid stops]

Ellerinizi ayağınızın altında hareket ettirebilmenize rağmen. Bu sorunu nasıl çözeceğimi söyle?

 

herkese iyi günler!


Acemiyim - "açılış" komisyoncusuna yeni bağlandım - iPhone'uma MT5 yükledim, bir ticaret hesabına bağlanamıyorum. iPhone bir sertifika gerektirir. Komisyoncu ayrıca bana bir sertifika gönderdi. iPhone'a nasıl yükleyeceğimi bilmiyorum. Arkadaşlar nasıl kurulacağını söyler misiniz? Şimdiden teşekkür ederim!

Dosyalar:
 
İyi günler, ancak OnTimer'da nasıl bir koşul ayarlayabilirim? Time[0] TimeCorrect'i karşılaştırmak mümkün mü?
Neden: