[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 594
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Genel olarak, Olasılık Teorisinden geçtim ve istatistiklere göre, bekleyen emirler fiyattan 50 puanlık bir yarıçap içindeyse, o zaman 10 puanlık bir kârla bir emir açarken ulaşmak daha kolay - eğer varsa ayrıca 10 puanlık bir stop loss (yayılma bile engel değil), trendin hareketi harika bir şey...
StepStop'tan bağımsız olarak durdurma kaybı ekleyin
//+------------------------------------------- --------------------+
//| Volfram.mq4 |
//| Vova-x@list.ru |
//| |
//+------------------------------------------- --------------------+
#özellik telif hakkı "Vova-x@list.ru"
#özellik bağlantısı ""
//--------------------------------------------
harici int TakeProfit=10;
harici int StepStop=45;
dış çift Lot=0.01;
extern bool MoneyManagement=true;
extern int MarjYüzdesi=10;
//----------------------------------------------------------
int seviye_sell_stop;
int seviye_buy_stop;
//------------------------------------------------ ----------
geçersiz başlangıç()
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL);
//Print("Durma seviyesi: "+minstop);
}
//------------------------------------------------ -----------
geçersiz başlangıç()
{
if (!IsTradeAllowed()) dönüşü;
level_buy_stop=0;
level_sell_stop=0;
SteppingStop();
SteppingPendings();
if (TotalBuy()==0 && TotalBuyStop()==0) SetBuyStop();
if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
Comment("Seviye Satın Alma Durdurma=",level_buy_stop*Puan,
"\n","Seviye Satış Durdur=",level_sell_stop*Puan);
}
//------------------------------------------------ -------------------------------------------------- --
voidAdım Durdur()
{
(StepStop<1) dönerse;
int sor, teklif ver, aç, durdur, x;
çifte kayıp;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
if (OrderType()==OP_BUY)
{
teklif=MathRound(Teklif/Puan);
open=MathRound(OrderOpenPrice()/Nokta);
stop=MathRound(OrderStopLoss()/Nokta);
x=(teklif açma)/StepStop; x--; x*=Adım Durdur;
level_sell_stop=open+x;
if (dur>=aç+x)
kayıp=(açık+x)*Puan;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
if (OrderType()==OP_SEL)
{
ask=MathRound(Sor/Puan);
open=MathRound(OrderOpenPrice()/Nokta);
stop=MathRound(OrderStopLoss()/Nokta);
x=(açık-sor)/StepStop; x--; x*=Adım Durdur;
level_buy_stop=open-x;
if (dur>0 && dur<=açık-x)
kayıp=(açık-x)*Puan;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
}
}
//------------------------------------------------ ----------------------------
void SteppingPendings()
{
int sor, teklif ver, aç;
çifte fiyat, zarar, kâr;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
if (OrderType()==OP_BUYSTOP)
{
if (level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Nokta);
if (aç<=level_buy_stop)
fiyat=level_buy_stop*Puan;
kayıp=fiyat-StepStop*Nokta;
kar=0; if (Kar Al>0) kar=fiyat+Kar Al*Puan;
OrderModify(OrderTicket(),fiyat,zarar,kâr,0,CLR_NONE);
}
if (OrderType()==OP_SELLSTOP)
{
if (level_sell_stop==0)
open=MathRound(OrderOpenPrice()/Nokta);
if (open>=level_sell_stop)
fiyat=level_sell_stop*Nokta;
kayıp=fiyat+StepStop*Nokta;
kar=0; if (Kar Al>0) kar=fiyat-AlKar*Puan;
OrderModify(OrderTicket(),fiyat,zarar,kâr,0,CLR_NONE);
}
}
}
//------------------------------------------------ --------------------
geçersiz SetBuyStop()
{
double lot=LotsCounting();
çift fiyat=Teklif+Adım Durdur*Puan;
çift kayıp=fiyat-StepStop*Puan;
çift kar=0; if (Kar Al>0) kar=fiyat+Kar Al*Puan;
int bilet=OrderSend(Symbol(),OP_BUYSTOP,lot,fiyat,0,zarar,kâr,"",0,0,CLR_NONE);
if (ticket<1) Print("Bekleyen bir sipariş oluşturma # hatasıyla başarısız oldu",GetLastError()," ",(GetLastError()));
}
geçersiz SetSellStop()
{
double lot=LotsCounting();
çift fiyat=Sor-StepStop*Puan;
çift kayıp=fiyat+StepStop*Nokta;
çift kar=0; if (Kar Al>0) kar=fiyat-AlKar*Puan;
int bilet=OrderSend(Symbol(),OP_SELLSTOP,lot,fiyat,0, zarar,kâr,"",0,0,CLR_NONE);
if (ticket<1) Print("Bekleyen bir sipariş oluşturma # hatasıyla başarısız oldu",GetLastError()," ",(GetLastError()));
}
int ToplamSatın Al()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_BUY) count++;
}
dönüş(sayım);
}
int ToplamBuyStop()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_BUYSTOP) count++;
}
dönüş(sayım);
}
int ToplamSatış()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_SELL) count++;
}
dönüş(sayım);
}
int ToplamSellStop()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_SELLSTOP) count++;
}
dönüş(sayım);
}
çift LotSayma()
{
çift lot = lot;
if (Para Yönetimi)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE);
double freemargin=HesapFreeMargin();
lot=0; if (lotsize>0) lot=NormalizeDouble((MarginPercent*freemargin/lotsize),1);
}
if (lot>10) lot=NormalizeDouble(lot,0);
if (lot<0.01) lot=0.01;
dönüş(lot);
}
// son
Cevap vermediler, çünkü muhtemelen böyle bir gösterge yazmak basit bir şey ve büyük olasılıkla kimsenin buna ihtiyacı yok.
İnsanlar, yardım edin! Açılan işlemin mümkün olan maksimum hacmi hesaplanamıyor
Max_lots her zaman sıfırdır!
Ve ikinci soru, LEVEL nasıl hesaplanır?
Teşekkür ederim ama yine de? Veya söyle bana, belki terminal ayarlarında, zaman ölçeğinin tüm uzunluğu boyunca saat işaretlerini daha net gösterme fırsatı var mı?
basit hacim bu şekilde hesaplanabilir
ve seviye = AccountEquity() / AccountFreeMargin() * 100;
ve seviye = AccountEquity() / AccountFreeMargin() * 100;
Yanlış. Bu formülle Düzey çalışmıyor
evet, bir hata yaptım, level = AccountEquity() / AccountMargin () * 100;
evet, bir hata yaptım, level = AccountEquity() / AccountMargin () * 100;
Sel için üzgünüm, ama bugün yapabilirsiniz.
=====
Ve anlamsız yüksekliklerle sallan
Buradan bir kaç cümle fırladı...
===========
Andrey Voznesensky.