Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 255
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
tp nasıl hesaplanır
Double tp=50 değişkeninde belirtelim;
Double tp=50 değişkeninde belirtelim;
şimdi yazıyor
2021.12.04 13:56:09.509 TestGenerator: eşleşmeyen veri hatası (2021.12.03 23:45'te yüksek değer 1.13110'a en düşük zaman diliminden ulaşılamıyor, yüksek fiyat 1.13104 uyumsuzlukları)
bir dakika için ayarla .. çalışıyor ..
ama durma seviyesi farklıdır -
1 2021.09.16 05:59 satmak 1 0.01 1.18190 51.18192 1.18140 0,00 10000.00
şimdi yazıyor
2021.12.04 13:56:09.509 TestGenerator: eşleşmeyen veri hatası (2021.12.03 23:45'te yüksek değer 1.13110'a en düşük zaman diliminden ulaşılamıyor, yüksek fiyat 1.13104 uyumsuzlukları)
Kuralların hepsi çevrimiçi, bu yüzden kendinizi kontrol edin.
Kuralların hepsi çevrimiçi, bu yüzden kendinizi kontrol edin.
Teşekkür ederim!
İyi akşamlar beyler lütfen söyleyin bana danışman neden ikinci siparişi açarken hata veriyor?
danışman metni
//+----------------------Parametreler--------------------------- -----------+
girdi int TakeProfit = 100; // Puan olarak kar
giriş int StopLoss = 50; // Puan kaybı
giriş çift Lot = 0.01; // Başlangıç partisi
giriş çift Multilot = 1,95; // Başlangıç lot çarpanı
giriş intSlippage=30; // kayma
giriş int MagicNumber = 333 ; // Benzersiz numara
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
çiftp=0;
çift sl=0;
int OnInit()
{
tp=NormalizeDouble(TakeProfit*Point(),Rakamlar());
sl=NormalizeÇift(StopLoss*Point(),Rakamlar());
dönüş(INIT_SUCCESSED);
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
//--loop, EA etkinleştirildiğinde açık sipariş olup olmadığını kontrol eder ve bunları sayar.
intbuy=0; // SATIN AL emri sayısı
int sat=0; // SATIŞ emirlerinin sayısı
for(int i = OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()== MagicNumber)
{
if(OrderType()==OP_BUY)
satın al++;
if(OrderType()==OP_SEL)
satmak++;
}
//--loop, EA etkinleştirildiğinde son kapatılan siparişin verilerini alır
inttype=-1; //Kapalı emir tipi
int history_close_orders=0; //Kapatılan siparişlerin sayısı
çift parti = 0; // Son kapatılan siparişin çoğu
çifte kar =0; //Son siparişin kapatıldığı kâr
tarihsaat=0; //Son siparişin kapanış saati
for(int i = OrdersHistoryTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()== MagicNumber)
if(OrderCloseTime()>zaman)
{
history_close_orders++;
time = OrderCloseTime();//son siparişin kapanış zamanı
lot = OrderLots();// Son kapatılan siparişin lotu
type= OrderType();// Son kapatılan siparişin türü
kâr=OrderProfit()*OrderSwap()*OrderCommission();//Kapatılan bir siparişin sonucu
}
// EA'nın çalışacağı partiyi hesaplayın
double Lots_Work=0;// çalışma alanı
if(history_close_orders==0 ||profit>0)// kapanan emir yoksa veya son sipariş artı olarak kapandıysa
Lots_Work=Lot;// iş partisi ilk partiye eşittir
if(history_close_orders>0 && kâr<0) // son sipariş zararla kapandıysa
Lots_Work=1;//çalışma partisi, çarpan ile çarpılan son siparişin partisine eşit olacaktır.
// İlk satın alma siparişinin açılması
if(satın al==0 || kâr>0)
{
int bilet=OrderSend(Symbol(),OP_BUY,Lots_Work,Ask,Slippage,0,0,"Test fuarı Uzman Danışmanı",MagicNumber,0,clrGreen);
if(bilet<0)
Print("OrderSend # ile başarısız oldu",GetLastError());
başka
Print("SiparişGönder işlemi başarıyla tamamlandı");
}
// İkinci ve sonraki satın alma siparişlerini açma
if(satın al==0 && type==OP_SATIN AL && kâr<0)
{
int bilet=OrderSend(Symbol(),OP_BUY,Lots_Work,Ask,Slippage,0,0,"Test fuarı Uzman Danışmanı",MagicNumber,0,clrGreen);
if(bilet<0)
Print("OrderSend # ile başarısız oldu",GetLastError());
başka
Print("SiparişGönder işlemi başarıyla tamamlandı");
}
// İlk satış emrinin açılması
if(sat==0 || kâr>0)
{
int bilet=OrderSend(Symbol(),OP_SELL,Lots_Work,Bid,Slippage,0,0,"Test fuarı Uzman Danışmanı",MagicNumber,0,clrRed);
if(bilet<0)
Print("OrderSend # ile başarısız oldu",GetLastError());
başka
Print("SiparişGönder işlemi başarıyla tamamlandı");
}
// İkinci ve sonraki satın alma siparişlerini açma
if(sell==0 && (tür==OP_SELL && kâr<0))
{
int bilet=OrderSend(Symbol(),OP_SELL,Lots_Work,Bid,Slippage,0,0,"Test fuarı Uzman Danışmanı",MagicNumber,0,clrRed);
if(bilet<0)
Print("OrderSend # ile başarısız oldu",GetLastError());
başka
Print("SiparişGönder işlemi başarıyla tamamlandı");
}
//--Al kar ve zararı durdur ekleyerek siparişi değiştirin
for(int i = OrdersTotal()-1; i>=0; i--)
if(Sipariş Seçimi(i, SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()== MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(OrderStopLoss()==0 || OrderTakeProfit()==0)
if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-sl,Digits()),NormalizeDouble(OrderOpenPrice()+tp,Digits()),0,clrGreen))
Print("SiparişModify OK!");
başka
Print("OrderModify SATIN ALMA # ile başarısız oldu", GetLastError());
}
if(OrderType()==OP_SEL)
{
if(OrderStopLoss()==0 || OrderTakeProfit()==0)
if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+sl,Digits()),NormalizeDouble(OrderOpenPrice()-tp,Digits()),0,clrRed))
Print("SiparişModify OK!");
başka
Print("OrderModify SATIŞ # ile başarısız oldu", GetLastError());
}
}
}
//+------------------------------------------- --------------------+
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?
on
on