Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1139
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
Android için robotlar var mı?
Metatrader'ın mobil versiyonunda otomatik ticaret yoktur ve görünüşe göre yakın gelecekte görünmeyecektir. Telefonunuzdan bir robotu yönlendirmek istiyorsanız, üzerinde robotlu bir terminalin olacağı bir VPS'ye ihtiyacınız var, + telefonunuzda uzaktan erişim için bir program.
MT5'te haftalık on döviz çifti tablosu açıyorum, 800 megabaytlık kene geçmişi terminale yükleniyor. Ve grafiklerde neredeyse hiç değişiklik olmamasına rağmen sürekli yükleniyor. Soru - sadece haftalık grafikler kullanıyorsam neden bir onay geçmişine ihtiyacım var? Bu arada, MT4'te haftalık grafikler anında ve gecikmeden açılır.
bu MT5'in bir özelliğidir - her şeyi M1'e yüklüyoruz ve ardından gerekli süreyi oluşturuyoruz ... selyavi (
ve böylece her zaman, her karakter için
Bir danışmanın fikri, fiyat yatay bir seviyeye veya manuel olarak çizilen bir trend çizgisine dokunduğunda almak veya satmaktır. Farklı çalışma danışmanlarından bir danışman ve bir gösterge derlendi. Ama danışman çalışmıyor. Bunun yerine, sadece SAT'ı açar ve ilk tikte sinyal vermez. Sorun nedir?
/+------------------------------------------------ ------------------+
//| |
//| Telif Hakkı © 2010, MetaQuotes Yazılım A.Ş. |
//| http://www.mql4.com/ru/users/rustein |
//+------------------------------------------- --------------------+
#define MAGIC 131313 // kanalın içinde açılıyor
//--------------------------------------
harici int TF=15;
//+------------------------------------------- --------------------+
harici int StopLoss = 300;
//------------------------------------------------ -----
harici çift TakeProfit = 3000;
//--------------------------------------
harici int Per_MA= 20;
//---- sabitler
#define OP_BUY_0
#define OP_SELL_1
//------------------------------------------------ --------------------+
dış çift Lot = 0.1;
harici çift MaximumRisk = 1;
dış çift Azaltma Faktörü = 0;
bool b_1=true, s_1=true;
//+------------------------------------------- --------------------+
//| Açık pozisyonları hesaplayın |
//+------------------------------------------- --------------------+
çift MA=iMA(NULL,TF,Per_MA,0,0,0,1);
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() && OrderMagicNumber()==MAGIC)
{
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,2);
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100/MarketInfo(Symbol(),MODE_TICKVALUE)/StopLoss,2);
//---- 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ü,2);
}
//---- parti boyutunu iade et
if(lot<0.01) lot=0.01;
dönüş(lot);
}
//------------------------------------------------ -
/* göstergeden bu kısım */
int CheckBreakoutLines(int shift)
{
// Toplam Nesneler
int obj_total = NesnelerToplam();
// Çubuğun zamanı
tarihsaat şimdi = Saat[shift];
// Yinele
for(int i = obj_total - 1; ben >= 0; ben--)
{
// Nesne adı
string etiketi = NesneAdı(i);
// türler
int OType = ObjectType(etiket);
bool eğilim çizgisi = yanlış;
bool hline = yanlış;
// değerlendirilecek fiyat
çift fiyat = 0;
// Eğilim çizgileri
if(OType == OBJ_TREND )
{
bool ray = ObjectGet(etiket, OBJPROP_RAY);
eğer(!ray)
{
tarihsaat x1 = ObjectGet(etiket, OBJPROP_TIME1);
tarihsaat x2 = ObjectGet(etiket, OBJPROP_TIME2);
if(x1 < şimdi && x2 < şimdi) devam et;
}
cprice = GetCurrentPriceOfLine(etiket, vardiya);
eğilim çizgisi=doğru;
} else if(OType == OBJ_HLINE ) {
cprice = ObjectGet(etiket, OBJPROP_PRICE1);
hline=doğru;
} başka {
devam etmek;
}
// Eğilim çizgilerinin ve hline'ların kırılmaları ve yanlış kırılmaları
if(MA>cfiyat &&Sor<cfiyat)
{
if(trendline) { dönüş(OP_BUY_); } else if(hline) { return(OP_BUY_); }
} else if (MA>cprice &&Ask<cprice) {
if(trendline) { dönüş(OP_SELL_); } else if(hline) { return(OP_SELL_); }
}
}
dönüş ( BOŞ_DEĞER );
}
double GetCurrentPriceOfLine(dize etiketi, int shift)
{
double fiyat1 = ObjectGet(etiket, OBJPROP_PRICE1);
çift fiyat2 = ObjectGet(etiket, OBJPROP_PRICE2);
tarihsaat d1 = ObjectGet(etiket, OBJPROP_TIME1);
tarihsaat d2 = ObjectGet(etiket, OBJPROP_TIME2);
int shiftfrom = iBarShift(Symbol(), 0, d1, false);
int shiftto = iBarShift(Symbol(), 0, d2, false);
int lapse = MathAbs(shiftto - shiftfrom);
int mesafe = MathAbs(shift - shiftfrom);
double pendiente = (fiyat2 - fiyat1) / gecikme;
çift nokta = fiyat1 + (mesafe * pendiente);
dönüş(nokta);
}
//------------------------------------------------ -------------------------------------------------- -----------
//+------------------------------------------- --------------------+
//| Açık sipariş koşullarını kontrol edin |
//+------------------------------------------- --------------------+
geçersiz CheckForOpen()
{
iç;
//------------------------------------------------ --------------------+
//------------------------------------------------ --------------------+
//---- satın alma koşulları
eğer(OP_BUY_&&b_1)
{
res=SiparişGönder(Symbol(),OP_BUY,LotsOptimized(),Sor,3,Sor-(Zarar Durdur*Puan),Sor+Kar Al*Puan," VV",MAGIC,0,Yeşil);
b_1=yanlış; s_1=doğru;
dönüş;
}
//---- satış koşulları
if(OP_SELL_&&s_1)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+(StopLoss*Puan),Teklif-AlKar*Point," VV",MAGIC,0,Kırmızı);
s_1=yanlış; b_1=doğru;
dönüş;
}
//----
}
//+------------------------------------------- --------------------+
//| başlatma işlevi |
//+------------------------------------------- --------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
}
//+------------------------------------------- --------------------+
//|---------------------// SON //--------------- ------ ---------|
//+------------------------------------------- --------------------+
Bir danışmanın fikri, fiyat yatay bir seviyeye veya manuel olarak çizilen bir trend çizgisine dokunduğunda almak veya satmaktır. Farklı çalışma danışmanlarından bir danışman ve bir gösterge derlendi. Ama danışman çalışmıyor. Bunun yerine, sadece SAT'ı açar ve ilk tikte sinyal vermez. Sorun nedir?
/+------------------------------------------------ ------------------+
//| |
//| Telif Hakkı © 2010, MetaQuotes Yazılım A.Ş. |
//| http://www.mql4.com/ru/users/rustein |
//+------------------------------------------- --------------------+
#define MAGIC 131313 // kanalın içinde açılıyor
//--------------------------------------
harici int TF=15;
//+------------------------------------------- --------------------+
harici int StopLoss = 300;
//------------------------------------------------ -----
harici çift TakeProfit = 3000;
//--------------------------------------
harici int Per_MA= 20;
//---- sabitler
#define OP_BUY_0
#define OP_SELL_1
................................................................
................................................................
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
}
//+------------------------------------------- --------------------+
//|---------------------// SON //--------------- ------ ---------|
//+------------------------------------------- --------------------+
Programı not defterine yükledim ve boş satırları sildim. Bir göz atmak için bir fırsat vardı. SRC düğmesine bastım ve yerleştirdim. İşte olanlar. 1) Neden tanımla
zaten OP_BUY=0 ve OP_SELL=1 varsa
2) Kötülüğün kökü bu parçadadır. Aynı koşul (MA>cprice &&Ask<cprice) iki kez kontrol edilir ve farklı kararlar alınır.
3) Her şubede daha fazla kontrol yapılır, ancak sonuç hala aynıdır.
ve genel olarak yukarıdaki satır basitleştirilebilir ve bu şekilde yazılabilir.
if(trendline)return OP_BUY; if(hline) return OP_BUY; или еще проще if(trendline or hline) return OP_BUY;
Programı not defterine yükledim ve boş satırları sildim. Bir göz atmak için bir fırsat vardı. SRC düğmesine bastım ve yerleştirdim. İşte olanlar. 1) Neden tanımla
zaten OP_BUY=0 ve OP_SELL=1 varsa
2) Kötülüğün kökü bu parçadadır. Aynı koşul (MA>cprice &&Ask<cprice) iki kez kontrol edilir ve farklı kararlar alınır.
3) Her şubede daha fazla kontrol yapılır, ancak sonuç hala aynıdır.
ve genel olarak yukarıdaki satır basitleştirilebilir ve bu şekilde yazılabilir.
Cevap için teşekkürler, değiştirdim ama yine de OP_SELL =1 olduğundan anladığım kadarıyla sadece SATIŞ açılıyor. Bu koşul her zaman karşılanır. böyle değiştirdim
siparişlerin açılması durdu bence çalışmıyor int CheckBreakoutLines(int shift) Belki olması gerektiği yerde değil mi?
Sevgili uzmanlar. Kurulumdan önce, MT4 kurulumu sırasında veya sonrasında, daha sonra alıntıların geçmişi sistem diski dışındaki herhangi bir diskten yazılması/okunması için ne yapılması gerekiyor, yoksa bu mümkün değil mi?
Tüm aracılardan MT4, her şeyi C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (sırasıyla her aracı ve terminallerinin her biri için) üzerine atar. 3-4 çift için iki brokerden iki MT4 25GB, yani tüm boş hafızayı yedi. Aynı yerde, test sırasında gerekli alıntılar test cihazı C:\Users\.......\tester\history içine yüklenir.
Lütfen disk boyutlarının yeniden dağıtılmasıyla Windows'un yeniden yüklenmesini (7'im var) dikkate almayan tavsiyelerle yardımcı olun. Belki yanlış bir şey yapıyorum? Eğer kaçırdıysam ve bu daha önce bir yerde tartışıldıysa - lütfen bana bir bağlantı atın ...
Şimdiden teşekkürler.
Sevgili uzmanlar. Kurulumdan önce, MT4 kurulumu sırasında veya sonrasında, daha sonra alıntıların geçmişi sistem diski dışındaki herhangi bir diskten yazılması/okunması için ne yapılması gerekiyor, yoksa bu mümkün değil mi?
Tüm aracılardan MT4, her şeyi C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (sırasıyla her aracı ve terminallerinin her biri için) üzerine atar. 3-4 çift için iki brokerden iki MT4 25GB, yani tüm boş hafızayı yedi. Aynı yerde, test sırasında gerekli alıntılar test cihazı C:\Users\.......\tester\history içine yüklenir.
Lütfen disk boyutlarının yeniden dağıtılmasıyla Windows'un yeniden yüklenmesini (7'im var) dikkate almayan tavsiyelerle yardımcı olun. Belki yanlış bir şey yapıyorum? Kaçırdıysam ve bu daha önce bir yerde tartışıldıysa - lütfen bana bir bağlantı atın ...
Şimdiden teşekkürler.
Basit bir kopyalama ile terminalin tüm klasörünü sistem dışı bir sürücüye aktarın, bunun için bir kısayol oluşturun ve /portable anahtarını yazın