MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1338 1...133113321333133413351336133713381339134013411342134313441345...1953 Yeni yorum sibiriyak73 2020.12.31 03:06 #13371 Soruyu daha doğru sorayım. EA'ya kaç işlemin açılacağını söyleyen bir kod bloğu vardır. O böyle görünüyor int AÇIK=1; if(Sipariş Toplamı()) AÇIK=0; // daha fazla sipariş açamaz eğer(AÇIK==1) { //Buradan açın } Sorun, tüm enstrümanlar için gerekli sayıda işlemi (bu örnekte 1) açmasıdır. Ve ona açıklamam gerekiyor açmanız gereken şey, CURRENT enstrümanındaki işlem sayısıdır. _Symbol veya Symbol() gibi bir şey. Bunu nasıl yapabilirim? Bence buradaki çözüm basit. [UYARI, KONU KAPALI!] Forumu [ARŞİV] Forumu kirletmemek için KimIV'ten faydalı özellikler Iurii Tokman 2020.12.31 07:18 #13372 sibiriyak73 : Soruyu daha doğru sorayım. EA'ya kaç işlemin açılacağını söyleyen bir kod bloğu vardır. O böyle görünüyor int AÇIK=1; if(Sipariş Toplamı()) AÇIK=0; // daha fazla sipariş açamaz eğer(AÇIK==1) { //Buradan açın } Sorun, tüm enstrümanlar için gerekli sayıda işlemi (bu örnekte 1) açmasıdır. Ve ona açıklamam gerekiyor açmanız gereken şey, CURRENT enstrümanındaki işlem sayısıdır. _Symbol veya Symbol() gibi bir şey. Bunu nasıl yapabilirim? Bence buradaki çözüm basit. if (!isTradeToDay( Symbol ())) { //Здесь открываем } sibiriyak73 2020.12.31 08:51 #13373 Iurii Tokman : Lanet olası bir anlaşma bulutunu yırtıp atıyor ve satıyor Iurii Tokman 2020.12.31 09:08 #13374 sibiriyak73 : Boktan bir anlaşma bulutunu yırtıyor ve satıyor Pekala, iki seçenek var: 1. tüm kodu göster 2. telepatlar kulübüne sibiriyak73 2020.12.31 09:39 #13375 Iurii Tokman : Pekala, iki seçenek var: 1. tüm kodu göster 2. telepatlar kulübüne :) :) nasıl açılıp alınıp satılacağını anladım "!". Ancak işlem sayısı her tikte açılmaz int başlangıç() { double a=iOpen(NULL,PERIOD_D1,0); çift d=_ORDER*0.00001; çift c=d+1; çift s=c*a; çift limit= NormalizeDouble(s,_Digits); // Print("sınır düzeyi= ",sınır); çift e=_STOP*0.00001; çift n=e+1; çift m=n*a; double SL= NormalizeDouble(m,_Digits); //Print("durma seviyesi= ",SL); çift p=_TP*0.00001; çift f=p+1; çift z=f*a; double TP= NormalizeDouble(z,_Digits); double w=iOpen(NULL,PERIOD_D1,0); çift q=_ORDER*0.00001; çift j=q+1; çift v=w/j; çift limit1= NormalizeDouble(v,_Digits); // Print("sınır düzeyi= ",sınır); çift k=_STOP*0.00001; çift y=k+1; çift u=w/y; double SL1= NormalizeDouble(u,_Digits); //Print("durma seviyesi= ",SL); çift g=_TP*0.00001; double_f=g+1; çift _m=w/_f; double TP1= NormalizeDouble(_m,_Digits); if(Saat()==Nac) { if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1)) { if(!isTradeToDay(Symbol())) { int bilet1=SiparişGönder(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //Buradan açın } } if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1)) { if(isTradeToDay(Symbol())) { int bilet=SiparişGönder(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,clrBlueViolet); //Buradan açın } } } if(Saat()==Kon) { boolsonuç; dehşet içinde; //---- while(Sipariş Toplamı()>0) { if(Sipariş Seçimi(0,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_BUY) sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE); if(OrderType()==OP_SEL) sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE); if(OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()); if(sonuç!=DOĞRU) { error=GetLastError(); Print("LastError = ",hata, " ",Symbol()); } başka hata=0; } başka Print("Sipariş seçerken hata oluştu", GetLastError()); } } //+------------------------------------------- --------------------+ //| | //+------------------------------------------- --------------------+ dönüş(0); } Bildirilen değişkenler olmadan kod burada. Any questions from newcomers 'Tümünü kapat'/'Aç' araçları Forumu kirletmemek için herhangi Iurii Tokman 2020.12.31 10:01 #13376 sibiriyak73 : kod eklenmelidir Alt + S ve fonksiyon nerede? nasıl derledin Hatalar yok ? sibiriyak73 2020.12.31 10:08 #13377 Iurii Tokman : kod eklenmelidir Alt+S ve fonksiyon nerede? nasıl derledin Hatalar yok ? aşağıdaki işlev. Hatasız derleme. Ayarlanmayı başaran satış tarafı, diğerlerinde açık olanlar olsa bile belirli bir enstrümanda bir anlaşma açar aletler. Ancak satın alma tarafı, her tikte yapılan anlaşmalarla mahvoldu ve hepsi bu Mors kodu Optimizasyon Algoritmaları Şampiyonası. [ARŞİV] Forumu kirletmemek için sibiriyak73 2020.12.31 10:12 #13378 Iurii Tokman : kod eklenmelidir Alt+S ve fonksiyon nerede? nasıl derledin Hatalar yok ? Şu anda kod bu şekilde. Satış tarafı tamam, ancak satın alma tarafı her tikte bir ticaret Dosyalar: dkub7ffup_1nw86d_2.mq4 13 kb 4i6gjk84s_tem9jy_2.ex4 20 kb Iurii Tokman 2020.12.31 10:30 #13379 sibiriyak73 : Şu anda kod bu şekilde. Satış tarafı tamam, ancak satın alma tarafı her tikte bir ticaret satın alma tarafında, aynısını yapın sibiriyak73 2020.12.31 11:20 #13380 Iurii Tokman : satın alma tarafında, aynısını yapın IsTradeToDay işlevinde tam olarak neyin değiştirilmesi gerektiğini çözemiyorum, böylece alım tarafında satış tarafındakiyle aynı olur. Satın alma tarafı hala çalışmıyor :( 1...133113321333133413351336133713381339134013411342134313441345...1953 Yeni yorum
Soruyu daha doğru sorayım.
EA'ya kaç işlemin açılacağını söyleyen bir kod bloğu vardır. O böyle görünüyor
int AÇIK=1;
if(Sipariş Toplamı())
AÇIK=0; // daha fazla sipariş açamaz
eğer(AÇIK==1)
{
//Buradan açın
}
Sorun, tüm enstrümanlar için gerekli sayıda işlemi (bu örnekte 1) açmasıdır. Ve ona açıklamam gerekiyor
açmanız gereken şey, CURRENT enstrümanındaki işlem sayısıdır. _Symbol veya Symbol() gibi bir şey. Bunu nasıl yapabilirim? Bence buradaki çözüm basit.
Soruyu daha doğru sorayım.
EA'ya kaç işlemin açılacağını söyleyen bir kod bloğu vardır. O böyle görünüyor
int AÇIK=1;
if(Sipariş Toplamı())
AÇIK=0; // daha fazla sipariş açamaz
eğer(AÇIK==1)
{
//Buradan açın
}
Sorun, tüm enstrümanlar için gerekli sayıda işlemi (bu örnekte 1) açmasıdır. Ve ona açıklamam gerekiyor
açmanız gereken şey, CURRENT enstrümanındaki işlem sayısıdır. _Symbol veya Symbol() gibi bir şey. Bunu nasıl yapabilirim? Bence buradaki çözüm basit.
Boktan bir anlaşma bulutunu yırtıyor ve satıyor
Pekala, iki seçenek var:
1. tüm kodu göster
2. telepatlar kulübüne
Pekala, iki seçenek var:
1. tüm kodu göster
2. telepatlar kulübüne :)
:)
nasıl açılıp alınıp satılacağını anladım "!". Ancak işlem sayısı her tikte açılmaz
int başlangıç()
{
double a=iOpen(NULL,PERIOD_D1,0);
çift d=_ORDER*0.00001;
çift c=d+1;
çift s=c*a;
çift limit= NormalizeDouble(s,_Digits);
// Print("sınır düzeyi= ",sınır);
çift e=_STOP*0.00001;
çift n=e+1;
çift m=n*a;
double SL= NormalizeDouble(m,_Digits);
//Print("durma seviyesi= ",SL);
çift p=_TP*0.00001;
çift f=p+1;
çift z=f*a;
double TP= NormalizeDouble(z,_Digits);
double w=iOpen(NULL,PERIOD_D1,0);
çift q=_ORDER*0.00001;
çift j=q+1;
çift v=w/j;
çift limit1= NormalizeDouble(v,_Digits);
// Print("sınır düzeyi= ",sınır);
çift k=_STOP*0.00001;
çift y=k+1;
çift u=w/y;
double SL1= NormalizeDouble(u,_Digits);
//Print("durma seviyesi= ",SL);
çift g=_TP*0.00001;
double_f=g+1;
çift _m=w/_f;
double TP1= NormalizeDouble(_m,_Digits);
if(Saat()==Nac)
{
if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))
{
if(!isTradeToDay(Symbol()))
{
int bilet1=SiparişGönder(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //Buradan açın
}
}
if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))
{
if(isTradeToDay(Symbol()))
{
int bilet=SiparişGönder(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,clrBlueViolet); //Buradan açın
}
}
}
if(Saat()==Kon)
{
boolsonuç;
dehşet içinde;
//----
while(Sipariş Toplamı()>0)
{
if(Sipariş Seçimi(0,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY)
sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
if(OrderType()==OP_SEL)
sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
if(OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
OrderDelete(OrderTicket());
if(sonuç!=DOĞRU)
{
error=GetLastError();
Print("LastError = ",hata, " ",Symbol());
}
başka
hata=0;
}
başka
Print("Sipariş seçerken hata oluştu", GetLastError());
}
}
//+------------------------------------------- --------------------+
//| |
//+------------------------------------------- --------------------+
dönüş(0);
}
Bildirilen değişkenler olmadan kod burada.
kod eklenmelidir Alt + S
ve fonksiyon nerede?
nasıl derledin Hatalar yok ?
kod eklenmelidir Alt+S
ve fonksiyon nerede?
nasıl derledin Hatalar yok ?
aşağıdaki işlev. Hatasız derleme. Ayarlanmayı başaran satış tarafı, diğerlerinde açık olanlar olsa bile belirli bir enstrümanda bir anlaşma açar
aletler. Ancak satın alma tarafı, her tikte yapılan anlaşmalarla mahvoldu ve hepsi bu
kod eklenmelidir Alt+S
ve fonksiyon nerede?
nasıl derledin Hatalar yok ?
Şu anda kod bu şekilde. Satış tarafı tamam, ancak satın alma tarafı her tikte bir ticaret
satın alma tarafında, aynısını yapın
satın alma tarafında, aynısını yapın
IsTradeToDay işlevinde tam olarak neyin değiştirilmesi gerektiğini çözemiyorum, böylece alım tarafında satış tarafındakiyle aynı olur. Satın alma tarafı hala çalışmıyor :(