MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 149

 

Güzel gün.

Lütfen bana tüm çubukları tek tek geçmeden tarih ve saate göre istediğiniz çubuğu nasıl bulacağımı söyler misiniz?

 
Sergey :

Güzel gün.

Lütfen bana tüm çubukları tek tek geçmeden tarih ve saate göre istediğiniz çubuğu nasıl bulacağımı söyler misiniz?


iBarShift hakkında bilgi edinin
 

int ToplamPos=-1;

geçersiz başlangıç()

{
// kodun geri kalanı

//--
if(OrdersTotal()!=TotalPos) { // her tike işkence etmeyin
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
Tarih();


}
}}} TotalPos=SiparişlerToplam(); // sayıyı hatırla
//--
}



voidHistory() {
string Ticket=(string)OrderTicket();
colorcol=Kırmızı;
if(OrderType()==0)col=Mavi;
tarihsaat a=OrderOpenTime();
çift b=OrderOpenPrice();
tarihsaat c=SiparişKapatTime();
çift d=SiparişKapatFiyat();
double prSep=OrderProfit()+OrderCommission()+OrderSwap();
doubleprAll=0;
int cn=0;
hTicket dizisi;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
tarihsaat ct=SiparişKapatTime();
// Izgaradaki ilk ve son kapanışlar arasındaki 60 saniyelik fark
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Aç",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Aç",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Aç",OBJPROP_ARROWCODE,1);

ObjectCreate(Ticket+"Satır",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Satır",OBJPROP_COLOR,sütun);
ObjectSet(Ticket+"Satır",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Satır",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Satır",OBJPROP_RAY,0);

ObjectCreate(Ticket+"Kapat",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Kapat",OBJPROP_COLOR,Yeşil);
ObjectSet(Ticket+"Kapat",OBJPROP_ARROWCODE,3);

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Kar",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Kar",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Kar",DoubleToString(prAll,2),10,"Arial",Beyaz);
ObjectSet(Ticket+"Kar",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Kar",OBJPROP_TIME1,c+Period()*60*2);
}

‌Bu işlem yerlerinde seviye çizgisi çizmek için bu fonksiyonun koduna ne eklenmeli

ticaretten grafik kaymasının sınırına kadar koordine edin‌

 

Lütfen .crv dosyasından okumama yardım edin

Dosya aşağıdaki girişi içerir:

2010.03.18 01:35:00;1.37409;1.37119

her değeri ayrı ayrı bir değişkene almak için kod nasıl yazılır‌

 
missha32 :

Lütfen .crv dosyasından okumama yardım edin

Dosya aşağıdaki girişi içerir:

2010.03.18 01:35:00;1.37409;1.37119

her değeri ayrı ayrı bir değişkene almak için kod nasıl yazılır‌

Burada okuyun/çalışın .
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • 2016.09.28
  • Dmitry Fedoseev
  • www.mql5.com
Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
 
Alexander Antoshkin :

int ToplamPos=-1;

geçersiz başlangıç()

{
// kodun geri kalanı

//--
if(OrdersTotal()!=TotalPos) { // her tike işkence etmeyin
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
Tarih();


}
}}} TotalPos=SiparişlerToplam(); // sayıyı hatırla
//--
}



voidHistory() {
string Ticket=(string)OrderTicket();
colorcol=Kırmızı;
if(OrderType()==0)col=Mavi;
tarihsaat a=OrderOpenTime();
çift b=OrderOpenPrice();
tarihsaat c=SiparişKapatTime();
çift d=SiparişKapatFiyat();
double prSep=OrderProfit()+OrderCommission()+OrderSwap();
doubleprAll=0;
int cn=0;
hTicket dizisi;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
tarihsaat ct=SiparişKapatTime();
// Izgaradaki ilk ve son kapanışlar arasındaki 60 saniyelik fark
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Aç",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Aç",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Aç",OBJPROP_ARROWCODE,1);

ObjectCreate(Ticket+"Satır",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Satır",OBJPROP_COLOR,sütun);
ObjectSet(Ticket+"Satır",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Satır",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Satır",OBJPROP_RAY,0);

ObjectCreate(Ticket+"Kapat",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Kapat",OBJPROP_COLOR,Yeşil);
ObjectSet(Ticket+"Kapat",OBJPROP_ARROWCODE,3);

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Kar",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Kar",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Kar",DoubleToString(prAll,2),10,"Arial",Beyaz);
ObjectSet(Ticket+"Kar",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Kar",OBJPROP_TIME1,c+Period()*60*2);
}

‌Bu işlem yerlerinde seviye çizgisi çizmek için bu fonksiyonun koduna ne eklenmeli

ticaretten grafik kaymasının sınırına kadar koordine edin‌

‌‌

şöyle bir şey:

string level="Level"+IntegerToString(iTime(_Symbol,iBarShift(OrderCloseTime())); // ид.уровня - по времени бара (!! не по тикету)

if (ObjectFind(level)‌==-1) {

  // гор.вектора нет - видимо первый ордер из закрытых на баре

  // сделать горизонтальную линию‌

  ObjectCreate(0,level,OBJ_TREND,0,OrderCloseTime(),OrderClosePrice(),OrderCloseTime()+PeriodSeconds(_Period)*3,OrderClosePrice);

 // указывающую только вправо‌

  ObjectSetInteger(level,‌OBJPROP_RAY,1);

  ObjectSetInteger(level,OBJPROP_RAYLEFT,0);

‌ // украсить её как-то :-)

 ObjectSetInteger(level,OBJPROP_‌COLOR,....)

 ....‌

} else {

  // гор.уровень есть - значит были ордера закрытые на этом баре

  // по фантазии - обновить метки/корректировать уровень/etc‌

}‌

 

Tünaydın!

terminal hangi nedenlerle robotu göremez? yerel bir programcı tarafından yazılmıştır. Aynı zamanda bazıları diğer robotları görür, bazıları görmez.

 
Serg_72 :

Tünaydın!

terminal hangi nedenlerle robotu göremez? yerel bir programcı tarafından yazılmıştır. Aynı zamanda bazıları diğer robotları görür, bazıları görmez.

Ve "yerel programcı" size neden robotunu başlatamadığınızı cevaplayamıyor?
 

İyi akşamlar!

Lütfen kodu yazmama yardım edin, kendim yapamayacağımı hissediyorum, özü şu:

EURUSD paritesinde Expert Advisor başlatılırken, aynı paritede açık / bekleyen emir olmaması şartıyla iki bekleyen emir verilmelidir,

ayrıca, bunlardan biri işe yaradıysa, bir geciktirici daha ayarlanmaz, yani. tüm siparişlerin toplamı, çift başına 2x'ten fazla değildir, diğer çiftlerde önceden verilmiş gecikmeler / açık siparişler dikkate alınmamalıdır.

Beynimi çoktan kırdım, o zaman hiçbir şeyi ortaya çıkarmaz, sonra her şeyi işaretler.

Yardımın için çok teşekkürler.

Teşekkür ederim.

 
Serg_72 :

Tünaydın!

terminal hangi nedenlerle robotu göremez? yerel bir programcı tarafından yazılmıştır. Aynı zamanda bazıları diğer robotları görür, bazıları görmez.

robot "uzmanlar" klasöründe olmalı ve *.ex4 (5 için *.ex5) biçiminde olmalıdır.
Terminalde - "Dosya/Veri dizinini aç" menüsü ve ardından - "MQL4/Experts"

Ve yalnızca *.mq4 *.mq5 kaynak metni çalışmıyor - derlenmesi gerekiyor

Aynı zamanda, ürününü nasıl kullanacağını söylemeyen programcının kafasını koparın.