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

 
VIX XIV :
İyi akşamlar. En son kapatılan siparişi seçen kod nasıl görünmelidir. Gerçekten şöyle mi: "OrderSelect(OrdersHistoryTotal, SELECT_BY_POS, MODE_HISTORY"?

Bloğunuz şöyle görünmelidir:

int a=-1;

for(int is=OrdersHistoryTotal(); is>=0; is--)

{

if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY))

{

if(OrderType()==OP_BUY) {a=OrderType(); kırmak;}

if(OrderType()==OP_SEL){a=OrderType(); kırmak;}

}

}

if(a==OP_BUY) Comment("Listedeki son kapatılan alış emri bulundu.");

if(a==OP_SELL) Comment("Listedeki son kapalı satış emri bulundu.");


 

Uzun zaman önce OrdersHistoryTotal'daki siparişlerin kronolojik sıralamasında bir garanti olmadığını ve kapanış tarihine kadar kontrol etmeniz gerektiğini okudum.

 

@Valerius , din kod olarak eklenmesine izin vermiyor mu? Ya da ne eksik?

 
Сергей Таболин :

@Valerius , din kod olarak eklenmesine izin vermiyor mu? Ya da ne eksik?

Ancak bir insan olarak, kodu MT düzenleyicisine kod olarak eklemek mümkün olacak şekilde yapılabilir mi?

Düğmelerinizin hiçbiri benim için olması gerektiği gibi çalışmıyor.

 
Valerius :

Ancak bir insan olarak, kodu MT düzenleyicisine kod olarak eklemek mümkün olacak şekilde yapılabilir mi?

Düğmelerinizin hiçbiri benim için olması gerektiği gibi çalışmıyor.

Zeki olabilir. Herhangi bir koddan herhangi bir şeyi kopyalayın ve yapıştırın. Ve kodunuzu oraya yapıştırın. Eksi arka ışık bu yöntemle çalışmaz))))


if(OrderSelect(is,SELECT_BY_POS,MODE_TRADES))  Это чужой код и его можно править))))
 
Valerius :

İlk soru için aşağıdaki işlevi yapmanız gerekir:


for(int is=OrdersTotal()-1; is>=0; is--)
{
if(OrderSelect(is,SELECT_BY_POS,MODE_TRADES))
{//Geçerli olmayan bir haftanın Cuma günü açılan kapanış siparişleri. Aynı zamanda bu hafta Cuma günü siparişleri kapatmıyoruz.
if(OrderMagicNumber()==Magic && TimeDayOfWeek(TimeCurrent())==5 && TimeDayOfWeek(OrderOpenTime())==5 && TimeDayOfYear(OrderOpenTime())<TimeDayOfYear(TimeCurrent()))
{
if (OrderType()==OP_BUY) sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_BID),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE);
if (OrderType()==OP_SELL) sonuç=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_ASK),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE);
if(!result) {hata=GetLastError(); Print("LastError = ",hata, " ",Symbol()); }
başka {hata=0;}
başka
{Print("NoMagic ", OrderMagicNumber());} // Hata Ayıklama için
başka

{Print("Sipariş seçiminde hata oluştu ", GetLastError());}


İkinci soru için şöyle görünmelidir:

OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE);

İyi şanlar.

Teşekkür ederim! ilk soruda her şey olması gerektiği gibi çalıştı

ikincisinde - yanlış sayıda parametre. Bu şekilde düzeltildi - OrderClose(OrderTicket(),OrderLots(),Ask,3, CLR_NONE );

ancak şimdi ilk versiyonumdaki baskıyı tam olarak anlamadım (bir yerden kopyaladım) ...

 
Merhaba!
Birisi, takip etmenin profi'nin nasıl çalıştığını mantıklı bir şekilde açıklayabilir mi? İzleyen Durdurma hakkında bilgi MT5 yardımında mevcuttur, ancak İzleyen Kar hakkında bilgi yoktur. Expert Advisor'da "Zararı Durdur takip seviyesi (puan cinsinden)" örneğini 100'e eşit olarak ayarladığımda, fiyat doğru yönde 100 puan hareket ettiğinde takibin aktif olduğunu anlıyorum. Ancak, örneğin " Kâr Al son düzeyi (puan olarak)" = 10 ne anlama geliyor?
 
altec3 :
Merhaba!
Birisi, takip etmenin profi'nin nasıl çalıştığını mantıklı bir şekilde açıklayabilir mi? İzleyen Durdurma hakkında bilgi MT5 yardımında mevcuttur, ancak İzleyen Kar hakkında bilgi yoktur. Expert Advisor'da "Zararı Durdur takip seviyesi (puan cinsinden)" örneğini 100'e eşit olarak ayarladığımda, fiyat doğru yönde 100 puan hareket ettiğinde takibin aktif olduğunu anlıyorum. Ancak, örneğin " Kâr Al son düzeyi (puan olarak)" = 10 ne anlama geliyor?

TakeProfit puan olarak hesaplanırken, TrailingTakeProfit mevduat para biriminde hesaplanır. TrailingTakeProfit, bir veya daha fazla siparişten mevduat para biriminde kar eder ve ayarlarda belirtilen miktarda, yani hesaplanan mesafede emirleri durdurur.

Örneğin, TrailingTakeProfit ayarlarda 100 dolara ayarlanmıştır. Fiyat 100 dolar kar edip daha da üstüne çıkar çıkmaz program 100 dolara tekabül eden mesafeyi hesaplar ve izin veriyorsa tüm stop-loss emirlerini hesaplanan yere yerleştirir. Fiyat kayıpları durdurmak için geri döner dönmez tüm siparişler kapatılacaktır. Prensip olarak, bu aynı TrailingStop'tur, yalnızca hesaplama mevduat para birimindedir ve karı takip eder. Bir yerde hata yapmış olabilirim ama prensip şu. umarım aydınlatabilmişimdir.

 
Python aracılığıyla belirtilen tf terminalinden tüm çubukları nasıl isteyebilirim?
 
MT5'te pozisyon kapanış zamanı yerine POSITION_TIME_UPDATE'e bakmak gerektiğini doğru mu anladım?