PositionID tst dosyasında saklanır. Belki tst->Virtual dönüştürmek mantıklıdır, o zaman MT4 tarzında tst ile çalışabilirsiniz. İşte böyle bir dönüşüm örneği.
Ayrıca nesnelerden geriye dönük test geçmişini de çıkarabilirsiniz. Kütüphanenin orada anlaşılması daha kolaydır.
ZЫ Bu konuya abone değilim, bu yüzden göremeyebilirim.
Торговые отчеты MetaTrader 5 довольно тяжелы для восприятия. По этой причине с определенного момента разработчики добавили в Терминал более понятный режим просмотра закрытых позиций. Однако, это не
Kene başına maliyeti göz önünde bulundurduğunuzdan emin olun.
Herkese günaydın ve iyi günler!
Kod yazmak için zamanım yok. Forum üyelerinden gelen ipuçlarını dikkate alarak, ki bunlar için büyük bir TEŞEKKÜR EDERİZ, betiğin bu sürümünü elde ettik:
//+------------------------------------------------------------------+//| Lot_Size_Depending_On_Risk_And_SL.mq5 |//| Copyright 2023, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2023, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"#property script_show_inputsinputuint Risk=6; // Размер риска (> 0, но не более 100 %)inputuint Stop_Loss=1000; // Размер стоп-лосса (> 0, но не более 4294967295)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double Lot_Size_Depending_On_Risk_And_SL()
{
//--- блок проверки входных параметров на корректностьif(Risk==0 || Risk>100 || Stop_Loss==0)
{
Print("<===== Введены не корректные размеры риска и/или стоп-лосса! =====>");
return(0.0);
}
//--- блок определения размера лотаdouble trading_account_currency=SymbolInfoDouble(_Symbol,SYMBOL_POINT)*
SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/
SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
double lot=(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*Risk*0.01)/(Stop_Loss*trading_account_currency);
//--- блок проверки размера лота на минимум и максимум от возможногоdouble min_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double max_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
if(lot<min_volume)
lot=min_volume;
if(lot>max_volume)
lot=max_volume;
//--- блок расчёта минимального шага изменения объёма необходимого для заключения сделкиdouble step_volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(lot/step_volume);
if(MathAbs(ratio*step_volume-lot)>0.0000001)
lot=ratio*step_volume;
return(lot);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---Print(DoubleToString(Lot_Size_Depending_On_Risk_And_SL(),2));
}
//+------------------------------------------------------------------+
Bölücüyü sıfır için kontrol etmeden birçok bölme. Patlayıcı.
İpucu için teşekkürler, Artyom! Kontrolü kesinlikle ekleyeceğim.
Saygılarımla, Vladimir.
Patlayıcı.
Yeterince adil.
fxsaber eğer okuyorsanız, lütfen cevap verin.
PositionID tst dosyasında saklanır. Belki tst->Virtual dönüştürmek mantıklıdır, o zaman MT4 tarzında tst ile çalışabilirsiniz. İşte böyle bir dönüşüm örneği.
Ayrıca nesnelerden geriye dönük test geçmişini de çıkarabilirsiniz. Kütüphanenin orada anlaşılması daha kolaydır.
ZЫ Bu konuya abone değilim, bu yüzden göremeyebilirim.
Kene başına maliyeti göz önünde bulundurduğunuzdan emin olun.
Herkese günaydın ve iyi günler!
Kod yazmak için zamanım yok. Forum üyelerinden gelen ipuçlarını dikkate alarak, ki bunlar için büyük bir TEŞEKKÜR EDERİZ, betiğin bu sürümünü elde ettik:
Saygılarımla, Vladimir.
İyi günler!
Robotumu yalnızca bir bilgisayarda çalışabilecek şekilde nasıl geliştirebileceğimi önerebilir misiniz?
(kopyalanmaya karşı korumak için)
Saygılarımla, Alexander
İyi günler!
Lütfen robotumu yalnızca bir bilgisayarda çalışabilecek şekilde nasıl geliştirebileceğimi önerebilir misiniz?
(kopyalanmasını önlemek için)
Saygılarımla, Alexander
En basit varyant.
OnInit işlevine iki satır kod ekleyin.
Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, derleyin ve yalnızca ex5 dosyasını verin.
En kolay seçenek.
OnInit işlevine iki satır kod ekleyin.
Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, yalnızca ex5 dosyasını derleyin ve verin.
Çok teşekkür ederim!
En kolay seçenek.
OnInit işlevine iki satır kod ekleyin.
Hesap numarası yerine, Uzman Danışmanı verdiğiniz kişinin hesabını belirtin, yalnızca ex5 dosyasını derleyin ve verin.
istemci terminali açar ve Uzman Danışman çöker :-))
çünkü ACCOUNT_LOGIN=0 olduğu durumlar vardır
istemci terminali açar ve Uzman Danışman çöker :-)
çünkü ACCOUNT_LOGIN=0 olduğu durumlar vardır
Güvenilir ve yüksek kaliteye ihtiyacınız varsa, freelance çalışmak içindir.
Garip. Terminalde "Ayarlar -> Grafikler" bölümünde maksimum 5000 çubuk ayarladım. Terminali yeniden yükledim, sembolün bulunduğu sekmenin üzerine gelindiğinde 5000 çubuğu gösteriyor.
Ama bu kod:
6201 çubuk hakkında bilgi görüntüler.
Bu doğru mu? Ayrıca rates_total 'da 5000 olmasını bekliyordum.