Çaydanlıktan gelen sorular - sayfa 166

 
Alphazavr :

Kodda yanlış olan ne? Neden " başarısız iptal emri #0 pazardan 0,00 satın al [Geçersiz istek] " hatalarını almaya devam ediyorum

pozisyon seçimi nerede?

emirlerin ticaretle ne ilgisi var?

ne yapmaya çalışıyorsun? pozisyonu kapat?


ve order_remove_mql_trade_request adı bir kabus.

 
sergeev :

pozisyon seçimi nerede?

emirlerin ticaretle ne ilgisi var?

ne yapmaya çalışıyorsun? yakın pozisyon?


ve order_remove_mql_trade_request adı bir kabus.

evet anlatılması gerekiyor.

kodun amacı -- açık bir pozisyon varsa, pozisyonla aynı yöndeki tüm limit emirlerini iptal edin.

örneğin, bir BY pozisyonu açıksa. sonra tüm satın alma limiti siparişlerini iptal edin

Bir pozisyon seçmeyi unuttum =). Eh, hata bundan değil (işaretli).

 
Alphazavr :

Kodda yanlış olan ne? Neden " başarısız iptal emri #0 pazardan 0,00 satın al [Geçersiz istek] " hatalarını almaya devam ediyorum


   MqlTradeRequest order_remove_mql_trade_request = {0};
   order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;

   i = OrdersTotal();
   if(i > 0){
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
         for(i2 = 0;i2 < = i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
         for(i2 = 0;i2 < = i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}


bu eşittir işaretlerini kaldırın.
 
sergeev :
bu eşittir işaretlerini kaldırın.
Zaten kaldırıldı, yardımcı olmuyor. Hatanın nerede olduğunu bilmiyorum. Bu hataların neden sadece AL LİMİT siparişlerinde olduğunu hala anlamış değilim, satış limitlerinde hata yok.
 
Alphazavr :
Zaten kaldırıldı, yardımcı olmuyor.
yaşlıları aldatmak iyi değildir.
 
sergeev :
yaşlıları aldatmak iyi değildir.

aldatmak hiç iyi değil. yapmıyorum


Şimdi her şeyi bu kodla iki kez kontrol ettim:

   i = OrdersTotal();
   if(i > 0){
      PositionSelect(_Symbol);
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
         for(i2 = 0;i2 < i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
         for(i2 = 0;i2 < i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}


Sonuç aynı. bu hata sıklıkla oluyor

 
Alphazavr :

Sonuç aynı. bu hata sıklıkla oluyor

"sıklıkla" boş bir deyimdir.

oklmn, sizce 2 + 2 genellikle 4'e eşit mi?

tembel olmayın - gönderme ve iade edilen hatanın analizini yapın.

kontrol edin NEYİ SİLMEYE ÇALIŞIYORSUNUZ???

Kapanış sırasında herhangi bir sipariş var mı?

Belki de zaten silinmiş bir siparişi silmeye çalışıyorsunuzdur.


üçüncü olarak - emirleri nasıl kapatacağınızı size kim öğretti??? Tüm siparişleri - figürinleri - geçtiğini düşünüyorsun. Her kapanıştan sonra OrdersTotal 1 azalır. Ve yine de kazanmak için i2++ ile birincil i'ye çekiçle vurursunuz.

OrderGetTicket veya OrderSelect'in bir hata döndürüp döndürmediğini kontrol etmeye bile zahmet etmediniz

kötü, çok kötü.

bu kadar küçük eller yüzünden uydularımız yörüngeden iniyor.

 
sergeev :

"sıklıkla" boş bir deyimdir.

oklmn, sizce 2 + 2 genellikle 4'e eşit mi?

tembel olmayın - gönderme ve iade edilen hatanın analizini yapın.

kontrol NEYİ KALDIRMAYA ÇALIŞIYORSUNUZ???

Kapanış sırasında herhangi bir sipariş var mı?

Belki de zaten silinmiş bir siparişi silmeye çalışıyorsunuzdur.


üçüncü olarak - emirleri nasıl kapatacağınızı size kim öğretti??? Tüm siparişleri - figürinleri - geçtiğini düşünüyorsun. Her kapanıştan sonra OrdersTotal 1 azalır. Ve yine de kazanmak için i2++ ile birincil i'ye çekiçle vurursunuz.

OrderGetTicket veya OrderSelect'in bir hata döndürüp döndürmediğini kontrol etmeye bile zahmet etmediniz

kötü, çok kötü.

bu kadar küçük eller yüzünden uydularımız yörüngeden iniyor.

"üçüncü" hakkında, haklı olduğunuzu not ediyorum =). Hiç de öyle olmadığından emindim, yoksa sadece alış limitlerinde değil, satış limitlerinde de test sırasında hatalar olurdu. ama genel olarak, elbette, siparişleri kapatmak iyi değil. Genel olarak, yardım etmeye ve yolu belirlemeye çalıştığınız için teşekkür ederiz.

 

selam beyler

Lütfen çözmeme yardım et. Önümüzde bir tuş vuruşunu taklit eden bir prototip windows işlevi var:

VOID WINAPI keybd_event(__in  BYTE bVk,               // Тип BYTE, занимает 1 байт
                        __in  BYTE bScan,             // Тип BYTE, занимает 1 байт
                        __in  DWORD dwFlags,
                        __in  ULONG_PTR dwExtraInfo
);

Gerçek şu ki, bu işlev MT4'te bayt yerine ints ile çağrılır. Şuna benziyor:

 void keybd_event( int bVk,                 // Тип int, занимает 4 байта
                 int bScan,               // Тип int, занимает 4 байта
                 int dwFlags,
                 int dwExtraInfo);
Sorun ne? En az 4 bayt mı aktarıyorsunuz? Donanıma bağlı mı?
 
220Volt :

selam beyler

Lütfen çözmeme yardım et. Önümüzde bir tuş vuruşunu taklit eden bir prototip windows işlevi var:

Gerçek şu ki, bu işlev MT4'te bayt yerine ints ile çağrılır. Şuna benziyor:

Sorun ne? En az 4 bayt mı aktarıyorsunuz? Donanıma bağlı mı?

Parametreleri bir fonksiyona aktarırken, minimum kuantum 32 bitlik bir tamsayıdır. Yani, sizin durumunuzda, bVk ve bScan, işleve geçmeden önce int türüne dönüştürülecektir.

Bu nedenle, yukarıdaki fonksiyon prototipleri birbiriyle çelişmez.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5