Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 256
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
i3 işlemcili eski bir dizüstü bilgisayarda, MT5 tarafından desteklenmeyen WinXP 32 bit hala kuruluydu. Geçenlerde belleği 6 GB'a yükselttim, MT4 ve MT5'in çalışacağı 64 bit işletim sistemi kurmak istiyorum. Hangisi tercih edilir - Win7 veya Win8.1
7'ye daha yakınım. Ofiste ve 8ka ve 10ka ve 7ka. 7ke'deki terminaller daha kararlı. Bilinmeyen nedenlerden dolayı, 7k'deki test cihazları, zayıf bilgisayarlarda daha hızlıdır. 8ka genellikle geçişlidir, bir şekilde çok değil. Daha fazla kaynak tüketir. 10ka kendisi için daha fazla kaynak gerektirir.
i3 işlemcili eski bir dizüstü bilgisayarda , MT5 tarafından desteklenmeyen WinXP 32 bit hala kuruluydu. Geçenlerde belleği 6 GB'a yükselttim, MT4 ve MT5'in çalışacağı 64 bit işletim sistemi kurmak istiyorum. Hangisi daha çok tercih edilir - Win7 veya Win8.1?
Dizüstü bilgisayarınızın üreticisinin web sitesine gidin ve hangi maksimum işletim sisteminin altında resmi sürücüler olduğuna bakın, bu işletim sistemi tercih edilir. Win 8.1 için sürücüler varsa, Win 10'u deneyebilirsiniz. Sürücüler Win 7 ile bitiyorsa, işletim sistemi seçimi küçüktür.
iyi günler, lütfen yardım edin.
Bu EA'ya bir kar al eklemeniz ve EA'yı başlatırken değiştirilecek parametreleri görüntülemeniz gerekir.
iki uyarı var 'OrderClose' dönüş değeri kontrol edilmelidir ayrıca lütfen düzeltin
harici çift Lot = 0.1;
harici çift MaximumRisk = 0,3;
dış çift Azaltma Faktörü = 100;
çift st1,st2;
//+------------------------------------------- --------------------+
//| Açık pozisyonları hesaplayın |
//+------------------------------------------- --------------------+
int CalculateCurrentOrders(dize sembolü)
{
int satın alır = 0, satar = 0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) satın alır++;
if(OrderType()==OP_SEL) satıyor++;
}
}
//---- iade sipariş hacmi
if(satın alır>0) iade(satın alır);
başka iade(-satış);
}
//+------------------------------------------- --------------------+
//| Optimum parti boyutunu hesaplayın |
//+------------------------------------------- --------------------+
çift LotOptimize Edilmiş()
{
çift lot=lot;
int siparişler=TarihToplam(); // geçmiş sipariş toplamı
int kayıplar=0; // Kesintisiz siparişlerin sayısı
//---- parti boyutunu seç
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3);
//---- Kesintisiz siparişlerin sayısını hesapla
if(DecreaseFactor>0)
{
for(int i=sipariş-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Geçmişte hata!"); kırmak; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) devam ediyor;
//----
if(OrderProfit()>0) kırılması;
if(OrderProfit()<0) kayıpları++;
}
if(kayıplar>1) lot=NormalizeÇift(lot-lot*kayıplar/AzalışFaktörü,1);
}
//---- parti boyutunu iade et
if(lot<0.1) lot=0.1;
dönüş(lot);
}
//+------------------------------------------- --------------------+
//| Açık sipariş koşullarını kontrol edin |
//+------------------------------------------- --------------------+
geçersiz CheckForOpen()
{
iç;
if(Volume[0]>1) dönüşü;
//---- satın almak -----------------------
if ( (iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))
if ((Open[0]<Aç[1])&&(Kapat[0]<Kapat[1]))
//
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,"",0,0,Mavi);
dönüş;
}
//---- satmak -----------------------
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))
if((Open[0]>Aç[1])&&(Kapat[0]>Kapat[1]))
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,15,0,"",0,0,Red);
dönüş;
}
}
//------------ Kapanış pozisyonları ---------------------------------- ------
geçersiz CheckForClose2()
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Beyaz);
if(OrderType()==OP_SEL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Mavi);
//CheckForOpen();
}
//
//+------------------------------------------- --------------------+
//| Yakın sipariş koşullarını kontrol edin |
//+------------------------------------------- --------------------+
geçersiz CheckForClose1()
{
if(Volume[0]>1) dönüşü;
// kayıp olup olmadığını kontrol et
if ((AccountProfit()<0)&&(MathAbs(AccountProfit())>=(AccountMargin()*MaximumRisk)))
{
CheckForClose2();
Print("zarar", AccountProfit());
}/**/
//---- sipariş tipini kontrol et
if(OrderType()==OP_BUY)
{
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))
if ((Open[0]>Open[1])&&(Close[0]>Close[1]))
CheckForClose2();
}
if(OrderType()==OP_SEL)
{
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))
if ((Open[0]<Aç[1])&&(Kapat[0]<Kapat[1]))
CheckForClose2();
}
}
//+------------------------------------------- --------------------+
//| başlatma işlevi |
//+------------------------------------------- --------------------+
geçersiz başlangıç()
{
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
yoksa CheckForClose1();
//---
}
//+------------------------------------------- +
SL ve TP hesaplaması eklendi, ancak çeklerini eklemekten zarar gelmez. Bunu nasıl yapacağınızı https://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position makalesinden okuyabilirsiniz.
Uyarınız kritik değil. Sadece OrderClose sonucu yok sayılır, bu nedenle uyarı. Örneğin, CheckForClose2 işlevinin OrderClose yürütme sonucunu döndürmesini sağlayabilirsiniz. Veya olduğu gibi bırakabilirsiniz.
Fark ettiğim başka bir şey de CheckForClose2, CheckForOpen, vb. fonksiyonların garip isimleri. " Kontrol" kelimesi kontrol etmek anlamına gelir. Ve sizin yerinize alım satım işlemlerini gerçekleştirirler.
Herkese merhaba. Birisi danışmanı düzenlemeye yardımcı olabilir. EA'nın siparişleri kendisi açmaması, yalnızca manuel olarak açılan siparişlerle çalışması için sipariş açma işlevini kaldırmak gerekir. Şimdiden teşekkürler.
Emir açma fonksiyonunu kaldırıyoruz ve sihri 0'a ayarlıyoruz. Robot manuel olarak açılan emirleri alacak ve onlara eşlik edecek. Robotun yalnızca tek tek siparişlere eşlik etmesine ihtiyacınız varsa ve hepsi arka arkaya değil, o zaman örneğin, robotun her biri için OnChartEvent'te CHARTEVENT_OBJECT_CLICK olayını oluşturması ve işlemesi gereken ilgili düğmeye basarak Al ve Sat'a gireriz. . Bu durumda büyünün sadece kendi emirlerinizle çalışabilmesi için 0'dan büyük olması gerekir.
https://www.mql5.com/ru/forum/131859/page9#434297
isTradeTimeString()
isTicaretZamanıInt()
Merhaba.
Böyle bir aksaklık ... Birini test ediyorum! 3 bilgisayarda uzman. 2'de açıkça koda göre çalışırlar, ancak birinde her zaman hesaplamalarla bazı söveler vardır - temel olarak durdurma kayıplarını yanlış hesaplar veya yanlış pozitifler.
Demir yeni değil ama eski de değil.
Bununla karşılaşan var mı?
Demir yeni değil, eski de değil.
Bununla karşılaşan var mı?
Üçü de aynı komisyoncu/bayi sunucusuna bağlı mı? (Yani, hikaye aynı mı?) Değilse, yapılacak ilk şey bu yönde kazmaktır.