Siparişleri değiştirirken 1 numaralı hata - sayfa 5

 
borilunad :

Victor, işten çıkarmalarda neden SL ve TP'yi değiştirmeye başladın?! Genel olarak, SL'yi yalnızca bir pozisyon açtıktan sonra ve TP'yi SL'yi İKİNCİ EL'e aktardıktan sonra koymak mantıklıdır! Öyleyse neden sunucuyu bu kadar boş yere rahatsız ediyor ve bu eziyete ihtiyacınız var?!

Kodun hızlı ve net bir şekilde çalışması için minimuma indirilmesi ve basitleştirilmesi gerekiyor ve ardından piyasanın kaprisleri nedeniyle düzeltmesi daha kolay olacak! Piyasanın gerçekleriyle ilgili tüm nüansları dikkatlice düşünün!

Ayrıca işten çıkarmalarda, sipariş tetiklendikten sonra, sistem açısından bağlantının kesilmesi veya sistem açısından daha doğru bir durdurma ayarlamanızı engelleyen başka bir şey olması durumunda derhal bir stoploss koydum.

her şey yolundaysa, sipariş tetiklendikten sonra, durdurmayı istenen seviyeye koyuyorum.

 
Stells :

Ayrıca işten çıkarmalara, sipariş tetiklendikten sonra, sistem açısından, bağlantının kesilmesi veya sistem açısından daha doğru bir durma ayarlamanızı engelleyen herhangi bir şey olması durumunda, derhal bir stoploss koydum.

her şey yolundaysa, sipariş tetiklendikten sonra, durdurmayı istenen seviyeye koyuyorum.

Bunda haklısınız, eğer TS'ye göre, SL'nize açılış fiyatına yakın bahis yapıyorsanız! Ancak açılış fiyatını birkaç kez değiştiren SL ve TP, makul olmayan bir şekilde çok fazla çaba harcar ve kodu karmaşıklaştırır, dedikleri gibi, muma değmez!
 

Victor, gerçekten ihtiyacın varsa, kolaylaştırabilirsin! Yalnızca açılış fiyatını kontrol edin ve SL ve TP ile bir gecikme ayarlarken yaptığınız gibi SL ve TP'yi işaretleyin!

Yani, SL için Ask-SL veya Bid+SL yazın ve TP için sırasıyla Ask+TP veya Bid-TP yazın! Deneyin, iyi çalışması gerekir! Yani hiçbir şey imkansız değildir! :)

 
borilunad :

Değiştir() işlevini istiyor musunuz?

reddetmeyeceğim. Ve hatta bir yerde bekliyorum.. Dün akşamdan beri bu şekilde.

keekkenen :
kod oldukça .. gibi görünüyor ama gerçek hayatta (demo değil) işe yarıyor mu?
Evet. Aynı anda 3 giriş parametresini değiştirmenin gerekli olmadığı birçok Uzman Danışmanda çalışır. Test cihazı seçeneğini attığımı not ediyorum, ancak gerçek için de var.

borilunad :

Victor, işten çıkarmalarda neden SL ve TP'yi değiştirmeye başladın?! Genel olarak, SL'yi yalnızca bir pozisyon açtıktan sonra ve TP'yi SL'yi İKİNCİ EL'e aktardıktan sonra koymak mantıklıdır! Öyleyse neden sunucuyu bu kadar boş yere rahatsız ediyor ve bu eziyete ihtiyacınız var?!

Kodun hızlı ve net bir şekilde çalışması için minimuma indirilmesi ve basitleştirilmesi gerekiyor ve ardından piyasanın kaprisleri nedeniyle düzeltmesi daha kolay olacak! Piyasanın gerçekleriyle ilgili tüm nüansları dikkatlice düşünün!

Boris, belgelere göre aynı anda 3 parametreyi değiştirebiliyorsanız, neden kullanmıyorsunuz? Sonuçta, uygun! Durdurma ve alma seçeneklerini değiştirmeyi düşünüyorum, ancak bu olasılık belgelenirse bu seçeneğin olması gerektiği gibi çalışmasını istiyorum. Ve değilse, bunun mümkün olmadığını yazmak gerekir. Ve soru kendi kendine kaybolacak.
 
borilunad :
TS'ye göre, SL'nizi açılış fiyatına yakın bahse girerseniz, bu konuda haklısınız! Ancak açılış fiyatını birkaç kez değiştiren SL ve TP, makul olmayan bir şekilde çok fazla çaba harcar ve kodu karmaşıklaştırır , dedikleri gibi, muma değmez!

Sunucuyu çok sık hacklediğimi kim söyledi Boris? Sonuçta, ticaret sisteminden bahsetmedim. Farklı seçenekler var. Çoğu zaman, yalnızca DURDUR, bazen hem DUR hem de AL aktarılır. Farklı varyantlar. Ancak benim durumumda, bu durumda, ertelemeler ortalama olarak birkaç saatte bir aktarılır ... Peki veya saatte bir. Bu, kodunuzu çok daha karmaşık hale getiriyor mu?

Aksine, kod daha basit hale gelir. Modifikasyon işlevini çağırdılar... oraya 3 parametre koydular ve değiştirdiler... Bu ideal, terminal hatalarını saymazsak.

Ve değilse. O zaman AÇIK FİYATI değiştirmeniz gerekecek, ardından koşullar karşılandı .. DUR fiyatı ve bazı koşulların yerine getirilmesinden veya bir sürenin sona ermesinden sonra AL'ı değiştirin. Bir tür kod basitleştirmesi mi?

 
hoz :

reddetmeyeceğim. Ve hatta bir yerde bekliyorum.. Dün akşamdan beri bu şekilde.

Evet. Aynı anda 3 giriş parametresini değiştirmenin gerekli olmadığı birçok Uzman Danışmanda çalışır. Test cihazı seçeneğini attığımı not ediyorum, ancak gerçek için de var.

Boris, belgelere göre aynı anda 3 parametreyi değiştirebiliyorsanız, neden kullanmıyorsunuz? Sonuçta, uygun! Durdurma ve alma seçeneklerini değiştirmeyi düşünüyorum, ancak bu olasılık belgelenirse bu seçeneğin olması gerektiği gibi çalışmasını istiyorum. Ve değilse, bunun mümkün olmadığını yazmak gerekir. Ve soru kendi kendine kaybolacak.

Victor, sana sadece açılış fiyatını kontrol etme fikrini verdiğim bir sonraki gönderiye bak ve SL ve TP'yi tekrar fiyattan sorunsuz bir şekilde ayarla!

Ve şimdi işlevi göndereceğim! Ben de dün cevap vermeni "bir yerde bekledim"! Daha hızlı gidelim!

 #include <stderror.mqh> //штатные инклюдники, чтобы 
#include <stdlib.mqh>   //вызывался ErrorDescription()



//------------------------/  Modify Order  \------------------------\\
void ModifyOrder( int ticket, double price, double stoploss, double takeprofit, datetime e, color arrow_color)
{
   int ModifyCnt = 0 , err;
   while (ModifyCnt < 3 ) {
     if (OrderModify(ticket, NormalizeDouble (price, Digits ), NormalizeDouble (stoploss, Digits ),
     NormalizeDouble (takeprofit, Digits ), 0 ,arrow_color))
    ModifyCnt = 3 ;
     else err = GetLastError ();
     if (err > 0 ) { 
       Print (ModifyCnt, " #" ,ticket, " Error modifing order: (" , err , ") " , ErrorDescription(err));
       Sleep ( 5000 ); RefreshRates(); ModifyCnt++;
} } }

Herhangi bir sorunuz varsa, yarına kadar beklemeyin! ;)

Fonksiyon evrenseldir, gecikmeli ve açık pozisyonlu herhangi bir değişiklik için kullanılır! İyi şanlar!

Sadece şimdi, dün olduğu gibi, akşam yemeği yiyeceğim! Toplam!

 
borilunad :

Ve şimdi işlevi göndereceğim! Ben de dün cevap vermeni "bir yerde bekliyordum"! Daha hızlı gidelim!

Herhangi bir sorunuz varsa, yarına kadar beklemeyin! ;)

Fonksiyon evrenseldir, gecikmeli ve açık pozisyonlu herhangi bir değişiklik için kullanılır! İyi şanlar!

Boris. Peki ya durma seviyesi ve donma seviyesi kontrolleri. Yoksa bugün artık ihtiyaç yok mu? :) Fonksiyonunuzun koduyla ilgili olarak.. Katılıyorum. Her şey basit ve net. Ama çekler... orada değiller. Niye ya?

borilunad :

Sadece şimdi, dün olduğu gibi, akşam yemeği yiyeceğim! Toplam!

Kim öğle yemeği yiyor ve bu saatte kim zaten akşam yemeği yiyor ..
 
hoz :

Bu lanet hata nasıl kaldırılır? O beni çoktan yakaladı. Fonksiyonun her giriş parametresini kontrol ediyorum. Şu anda elimde şu şekilde:

Onlar. parametre değiştirilmediyse, değiştirmeye gerek yoktur. Bunu daha önce hiç yapmadım, ama...

Ardından parametrelerim şu şekilde sipariş değiştirme yöntemine iletilir:

Hv günlük çıktısı:

Günlüğün değişiklik gibi bildirdiği ortaya çıktı: Tamam ve ardından ... bir hata. Ayarların hiçbiri değişmedi.

Sipariş beklemede. Böylece açılış fiyatını değiştirebilir, durdurabilir ve alabilirsiniz. Ve bu, anladığım kadarıyla belgelerle çelişmedi.

Kim benzerleriyle karşılaştı? Nasıl karar verilir?

Kaldırın.
 
hoz :

Boris. Peki ya durma seviyesi ve donma seviyesi kontrolleri. Yoksa zamanımızda artık gerekli değil mi? :) Fonksiyonunuzun koduyla ilgili olarak.. Katılıyorum. Her şey basit ve net. Ama çekler... orada değiller. Niye ya?

Kim öğle yemeği yiyor ve bu saatte kim zaten akşam yemeği yiyor ..

Tüm kontroller, her tiple ilgili koşulların ve bu fonksiyona yapılan çağrının, sadece Modify() içindeki hata kontrolünün yapıldığı döngüden önce gerçekleştirilir:

            ModifyOrder(OrderTicket(),OOP,SL, 0 , 0 , clrBlue ); return ( 0 );

Bir şey olursa, yine de sorun, ama şimdi yemeğe gittim. ;)

 
Nasıl oy verdin?