Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 842

 

OrderClose(OrderTicket(),0.01,Bid,2);

"uzmanlar" bölümünde "Sipariş Kapatma işlevi için geçersiz bilet" yazıyor

Yardım? Amacım mevcut grafikte bir siparişi kapatmak.

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"uzmanlar" bölümünde "Sipariş Kapatma işlevi için geçersiz bilet" yazıyor

Yardım? Amacım mevcut grafikte bir siparişi kapatmak.

 if ( OrdersTotal ()== true )
{
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderType()==(OP_BUY/OP_SELL здесь поставишь какой ордер) && (здесь можешь написать условия закрытия т.е. сигнал) 
{
bool close = OrderClose(OrderTicket(),OrderLots(),Bid, 3 , clrRed ); 
if (!close)
Print ( "Ошибка закрытия ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер BUY успешно закрыт." );
}
}
 
Mümkünse siparişi KOŞULSUZ kapatmam gerekir mi? Orderticket neden yazdığım programın o satırında çalışmıyor?
 
Pokrov :

İyi akşamlar! Aşağıdaki kodu anlamama yardımcı olun, sat neden üç açılış seçeneği olduğu ile aynı prensibe göre yazılmıştır, çünkü emir mevcut çubukta açılıp riskle kapatıldığında bir emir açmaktan kaçınma seçeneği ile kafam karışmak zorunda kaldı. -Bedava,

ama sinyal kalıyor ve açılış tekrar devam ediyor, bu yüzden böyle yazmak zorunda kaldım. Ve sorun şu ki, sadece bir alış ve satış emri açılıyor ve bu kadar, sonra sessizlik, hiç hata bulamadım . Şimdiden teşekkürler.

Bu çizgi nasıl anlaşılır?

 if (! OrdersTotal ()== true )

ve bu

 if (!OrdersHistoryTotal()== true )

ve bu...

 if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 // дальше я не смотрел

Bu son satır işe yarayacak olsa da, böyle yazılmamış ... kelime yok.

Pekala, eğer herhangi bir hata bulamadıysanız, o zaman muhtemelen orada da yoktur...

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"uzmanlar" bölümünde "Sipariş Kapatma işlevi için geçersiz bilet" yazıyor

Yardım? Amacım mevcut grafikte bir siparişi kapatmak.

Çünkü bir siparişle çalışmadan önce onu OrderSelect() işleviyle seçmeniz gerekir.
 
AlexeyVik :

Bu çizgi nasıl anlaşılır?

ve bu

ve bu...

Bu son satır işe yarayacak olsa da, böyle yazılmamış ... kelime yok.

Pekala, eğer herhangi bir hata bulamadıysanız, o zaman muhtemelen orada da yoktur...

1. Açık sipariş yoksa

2. Kapanan emir yoksa.

Sorun nedir?

 
Pokrov :

1. Açık sipariş yoksa

2. Kapanan emir yoksa.

Sorun nedir?

int SiparişlerToplam() ; - sayıyı döndürür, doğru-yanlış değil, sorun bu. Hiçbir sipariş 0 anlamına gelir ve sipariş varsa, o zaman sadece 1 değildir.

Ve henüz işlem görmemiş, sadece yeni açılmış bir hesapta kapatılan yok. Ve yine işlevin yanlış kullanımı.

Neden RefreshRates(); Siparişi sunucuya gönderdikten SONRA? Bir şeye önce para ödeyip sonra "ne kadar" diye sormak gibi...

 
Pokrov :

 if ( OrdersTotal ()== true )
{
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderType()==(OP_BUY/OP_SELL здесь поставишь какой ордер) && (здесь можешь написать условия закрытия т.е. сигнал) 
{
bool close = OrderClose(OrderTicket(),OrderLots(),Bid, 3 , clrRed ); 
if (!close)
Print ( "Ошибка закрытия ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер BUY успешно закрыт." );
}
}

Burada ne saçmalıyorsun?

Toplam emir ve pozisyon sayısı 1 veya daha fazla ise...
Bilinmeyen bir bilet için bir sipariş seçilirse ve kapanıp açılmadığı belli değilse...
vb. ...

Sizce yardımcı oldular mı?

 
evillive :

... Emir yok demek 0 demektir ve eğer emir varsa sadece 1 değildir.

...

Burada tabiri caizse izin alarak düzelteceğim.

Bool'da, 0 ise yanlış ise, sıfır dışındaki her şey doğrudur

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"uzmanlar" bölümünde "Sipariş Kapatma işlevi için geçersiz bilet" yazıyor

Yardım? Amacım mevcut grafikte bir siparişi kapatmak.

Biletle bir pozisyonu kapatmak için öncelikle kapatılan pozisyonun bilet numarasını tam olarak bilmeniz gerekir. Ardından OrderSelect (bilet,SELECT_BY_TICKET) işlevini kullanarak bir sipariş seçmeniz ve seçimin başarılı olup olmadığını kontrol etmeniz gerekir. Ardından, başarıyla seçilen bir siparişin kapanış saatini kontrol etmeniz gerekir. Ne için? Ardından, bilete göre seçim yaparken, OrderSelect(..., ..., pool ) işlevinin havuz parametresi yok sayılır (yalnızca dizine göre seçerken gereklidir). Bu, bir siparişi başarıyla seçmiş olsak bile, onu hangi listede seçtiğimizi bilmemiz gerektiği anlamına gelir - kapalı veya açık pozisyonlar listesinde. "Piyasada hala sipariş var mı?" diye sormamızı sağlayacak olan kapanış saatinin kontrolüdür. Kapanış zamanı sıfır ise, emir hala piyasadadır. Zaman sıfırdan farklıysa, sipariş daha önce kapatılmıştır. Ve şimdi, tüm bu işlemlerden sonra, bu siparişi kapatmak için bir emir gönderebiliriz.
Neden: