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

 
Tanita Gajduchok :
Merhaba Burada lider skoru nasıl yapılır?

üst ?

 
Selamlar!

Bunun gibi bir fonksiyon nasıl yazılır:

Büyüyen mum hacminin toplamı, örneğin son 10 çubuk için azalan hacmin toplamının 2 katını aşmalıdır.

Ekranda ne var gibi.


Dosyalar:
IMG_9206.PNG  87 kb
 

Herkese iyi günler. Kayıp durumunda lotun depozito yüzdesi olarak ayarlanması için Grail makinesine lot büyüklüğü hesaplaması eklemeye çalışıyorum. Yani, stoploss tetiklenirse, belirtilen yüzde depozitodan kaybedilir veya depozito bu yüzde için küçükse, lot komisyoncu için mümkün olan minimum seviyeye ayarlanır ... Bazı sitelerde buldum Bunu yapan ve komut dosyasının kodunu kendime aktaran bir komut dosyasının açıklaması, ancak partinin doğru olmadığı kabul ediliyor. .öyle yaptı. Girdi değişkenlerinde maksimum riskten sorumlu bir değişken bildirildi.

 extern int MaxRisk= 1 ; // МАКСИМАЛЬНЫЙ % УБЫТКА ПРИ СТОП ЛОССЕ?

Daha sonra, değişkenleri bildiririm. Hesaptaki ücretsiz fon miktarını depolayan bir değişken. Enstrüman için bir noktanın değişken değeri. Broker'ın minimum lot değişkeni. Aracının maksimum lotunun değerini depolayan bir değişken. Ve parti büyüklüğü adımını saklayan bir değişken.

   double Free =AccountFreeMargin(); // ПОЛУЧАЕМ СВОБОДНЫЕ СРЕДССТВА ДЛЯ РАСЧЁТА ОБЪЁМА ЛОТА
   double LotVal =MarketInfo( Symbol (),MODE_TICKVALUE); //СТОИМОСТЬ 1 ПУНКТА
   double Min_Lot =MarketInfo( Symbol (),MODE_MINLOT);   // МИНИМАЛЬНЫЙ ЛОТ РАЗРЕШЁННЫЙ БРОКЕРОМ
double Max_Lot =MarketInfo( Symbol (),MODE_MAXLOT);     // МАКСИМАЛЬНЫЙ ЛОТ РАЗРЕШЁННЫЙ БРОКЕРОМ
double Step =MarketInfo( Symbol (),MODE_LOTSTEP);     // ШАГ ИЗМЕНЕНИЯ РАЗМЕРА ЛОТА

Daha sonra parti hacmi, belirli bir zarar durdurmada belirli bir riskle hesaplanır. Durdurma kaybı atr ile hesaplanır veya puan olarak sabitlenir - bu hesaplama doğru çalışır çünkü sabit bir lot koyarsam her şey açılır ve iyi çalışır. Bir lotun hacmini hesaplama formülü aşağıdaki gibidir.

 double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl*LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА, КОТОРУЮ Я СОВСЕМ НЕ ПОНИМАЮ((((
   if (lot<Min_Lot) lot=Min_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ МЕНЬШЕ ЧЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ЛОТ ПРИСВАЕМАЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА
if (lot>Max_Lot) lot=Max_Lot;   //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ БОЛЬШЕ ЧЕМ МАКСИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ОЛТ ПРИСВАЕВАЕМ МАКС ЛОТ У БРОКЕРА

 


  Baskı üzerinden tüm hesaplamaları yaptıktan sonra, görmek için partinin değerini gösteriyorum.

 Print ( "ЛОТ ДО НОРМАЛИЗАЦИИ= " +lot);
 lot= NormalizeDouble (lot, Digits ());
Print ( "ЛОТ ПОСЛЕ НОРМАЛИЗАЦИИ= " +lot);

Günlüğe kaydedilenler logda lot ve stop ile gösterilenler - stop değerleri doğru, fakat lot yok ((((

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Информация о счете - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
DanilaMactep :

Herkese iyi günler. Kayıp durumunda lotun depozito yüzdesi olarak ayarlanması için Grail makinesine lot büyüklüğü hesaplaması eklemeye çalışıyorum. Yani, stoploss tetiklenirse, belirtilen yüzde depozitodan kaybedilir veya depozito bu yüzde için küçükse, o zaman lot komisyoncu için mümkün olan minimuma ayarlanır ... Bazı sitelerde buldum Bunu yapan ve komut dosyasının kodunu kendime aktaran bir komut dosyasının açıklaması, ancak partinin doğru olmadığı kabul ediliyor. .öyle yaptı. Girdi değişkenlerinde maksimum riskten sorumlu bir değişken bildirildi.

Daha sonra, değişkenleri bildiririm. Hesaptaki ücretsiz fon miktarını depolayan bir değişken. Enstrüman için bir noktanın değişken değeri. Broker'ın minimum lot değişkeni. Aracının maksimum lotunun değerini depolayan bir değişken. Ve parti büyüklüğü adımını saklayan bir değişken.

Daha sonra parti hacmi, belirli bir zarar durdurmada belirli bir riskle hesaplanır. Durdurma kaybı atr ile hesaplanır veya puan olarak sabitlenir - bu hesaplama doğru çalışır çünkü sabit bir lot koyarsam her şey açılır ve iyi çalışır. Bir lotun hacmini hesaplama formülü aşağıdaki gibidir.


  Baskı üzerinden tüm hesaplamaları yaptıktan sonra, görmek için partinin değerini gösteriyorum.

Günlükte görüntülenenler *** tarafından görüntülenebilir

İlk bakışta, işlev normaldir. Sadece formülde, emrin zararı durdur fiyatını değil, emrin açılmasından durma noktasına kadar olan mesafeyi nokta olarak eklemek gerekir.

Ayrıca: Partiyi, Adım - (PARTİ BOYUTU DEĞİŞİM ADIMI) için _Digits değil bir doğrulukla normalize etmek gerekir ve Print'te DoubleToString() yoluyla aynı doğrulukla çıktı almak gerekir, o zaman ne yaptığınızı göreceksiniz. görmek istedi.

 
DanilaMactep :

Herkese iyi günler. Partinin büyüklüğünü hesaplamak için makineyi Kase'ye vidalamaya çalışıyorum.

bunu kendime yaptım

Order_Lots = NormalizeDouble ((AccountBalance()/ 100 *Percen)/(MarketInfo( Symbol (),MODE_TICKVALUE)*Stop_Point)- 0.005 , 2 );
 
Alexey Viktorov :

İlk bakışta, işlev normaldir. Sadece formülde, emrin zararı durdur fiyatını değil, emrin açılmasından durma noktasına kadar olan mesafeyi nokta olarak eklemek gerekir.

Ayrıca: Partiyi, Adım - (PARTİ BOYUTU DEĞİŞİM ADIMI) için _Digits değil bir doğrulukla normalize etmek gerekir ve Print'te DoubleToString() yoluyla aynı doğrulukla çıktı almak gerekir, o zaman ne yaptığınızı göreceksiniz. görmek istedi.

Matematikte iyi değilim - bir siparişin açılmasından koddaki durma noktasına kadar olan mesafeyi sl yerine nasıl hesaplayabilirim? böyle sonuçlandı

 DoubleToString ( "ЛОТ ПОСЛЕ НОРМАЛИЗАЦИИ= " +lot); // ВЫВОД ЗНАЧЕНИЯ ЛОТА
Bunun gibi normalleştirilmiş lot değeri
lot= NormalizeDouble (lot,Step); // НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ ЛОТА 

Koddaki açılıştan durağa kadar olan mesafenin nasıl hesaplanacağını anlamak için kalıyor?

 
DanilaMactep :

Koddaki açılıştan durağa kadar olan mesafenin nasıl hesaplanacağını anlamak için kalıyor?

 if (buy)
Stop_Point= (Pric_UP-Loss_UP)/ Point +Spread; 
else
Stop_Point= (Loss_DN-Pric_DN)/ Point +Spread; 
 
MakarFX :

Kod parçası için çok teşekkür ederim, ancak şimdi soru bu kod parçasından hangi tür değişkenlerin bildirileceği ve bunlara hangi değerlerin atanacağıdır? Ben bir sihirbaz değilim, ama sadece öğreniyorum

 
DanilaMactep :

Kod parçası için çok teşekkür ederim, ancak şimdi soru bu kod parçasından hangi tür değişkenlerin bildirileceği ve bunlara hangi değerlerin atanacağıdır? Ben bir sihirbaz değilim, ama sadece öğreniyorum

Pric_UP

açılış fiyatı satın al

Loss_UP

zararı durdur fiyatını satın al

   Spread = StrToInteger( DoubleToString (MarketInfo( Symbol (), MODE_SPREAD ), 0 ));
yayılmış
 
Порт-моне тв :
Selamlar!

Bunun gibi bir fonksiyon nasıl yazılır:

Büyüyen mum hacminin toplamı, örneğin son 10 çubuk için azalan hacmin toplamının 2 katını aşmalıdır.

Ekranda ne var gibi.


biri bana yardım edebilir mi?