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

 

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.

 
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 ()))
 {
   //Здесь открываем
 }
 
Iurii Tokman :
Lanet olası bir anlaşma bulutunu yırtıp atıyor ve satıyor
 
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

 
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.

 
sibiriyak73 :

kod eklenmelidir Alt + S
ve fonksiyon nerede?
nasıl derledin Hatalar yok ?

 
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

 
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
 
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

 
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 :(