Sipariş göndermek zor geliyor. - sayfa 2

 
"2014.04.02 00:19:50.590 2010.10.15 00:00:00 1.60082'de 0.07 GBPUSD satın alma başarısız oldu [ Geçersiz hacim ]"

 
MetaNt :
"2014.04.02 00:19:50.590 2010.10.15 00:00:00 1.60082'de 0,07 GBPUSD döviz alımı başarısız oldu [Geçersiz hacim]"

Lütfen bu küçük betiği bir GBPUSD grafiğinde çalıştırın ve sonucu bildirin.

 void OnStart ()
  {
   printf ( "Volume min = %f, volume step = %f for symbol %s." ,
           SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ),
           SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ),
           _Symbol );

  }
 
angevoyageur :

Lütfen bu küçük betiği bir GBPUSD grafiğinde çalıştırın ve sonucu bildirin.

Üzgünüm, gönderiyi görmedim. Demo modunda bunun mql4 versiyonunda yaşadığım bazı sorunlarla uğraşıyordum.

Senaryoyu çalıştıracağım teşekkürler

 

Rapor

"2014.04.02 15:11:27.158 Parti (GBPUSD,D1) Hacim min = 0.010000, hacim adımı = GBPUSD sembolü için 0.010000."

 
MetaNt :

Rapor

"2014.04.02 15:11:27.158 Parti (GBPUSD,D1) GBPUSD sembolü için hacim min = 0.010000, hacim adımı = 0.010000."

Bu garip. Siparişler, çağrılar ve hata işleme (yazdırma) dahil olmak üzere ilgili tüm kodları gönderebilir misiniz?
 
angevoyageur :
Bu garip. Siparişler, çağrılar ve hata işleme (yazdırma) dahil olmak üzere ilgili tüm kodları gönderebilir misiniz?

Evet, istendiği gibi aşağıda

Lot=LotSize/ 8 ;


 MqlTradeResult StageOneBuyRes={ 0 };
MqlTradeRequest StageOneBuy={ 0 };

StageOneBuy.action= TRADE_ACTION_DEAL ;  
StageOneBuy.magic=MagicNumber;  
StageOneBuy.symbol= _Symbol ;             // symbol
StageOneBuy.volume=Lot;
StageOneBuy.price= SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
StageOneBuy.sl= 0 ;                   // Stop Loss is not specified
StageOneBuy.tp= 0 ;                 // Take Profit is not specified 
StageOneBuy.deviation = 7 ;  
StageOneBuy.type= ORDER_TYPE_BUY ; // order type
StageOneBuy.type_filling = ORDER_FILLING_FOK ;
StageOneBuy.comment = "test" ;
 

MqlTradeResult StageOneSellRes={ 0 };
MqlTradeRequest StageOneSell={ 0 };

StageOneSell.action= TRADE_ACTION_DEAL ;  
StageOneSell.magic=MagicNumber;  
StageOneSell.symbol= _Symbol ;             // symbol
StageOneSell.volume=Lot;
StageOneSell.price= SymbolInfoDouble ( _Symbol , SYMBOL_BID );
StageOneSell.sl= 0 ;                   // Stop Loss is not specified
StageOneSell.tp= 0 ;                 // Take Profit is not specified 
StageOneSell.deviation = 7 ;  
StageOneSell.type= ORDER_TYPE_SELL ; // order type
StageOneSell.type_filling = ORDER_FILLING_FOK ;
StageOneSell.comment = "test" ;

 if ( SymbolInfoInteger ( _Symbol , SYMBOL_SESSION_DEALS )== 0 ){ if ( OrderSend (StageOneBuy,StageOneBuyRes))buyticket1=( int ) OrderGetInteger ( ORDER_POSITION_ID );}
       if (buyticket1> 0 ){ Print ( "Order Placed " , "Order Ticket " , buyticket1, " Order Lots " , OrderGetDouble ( ORDER_VOLUME_INITIAL )); return ;} else { Print ( "Order Placement Unsuccessful " , GetLastError ()); return ;}

 if ( SymbolInfoInteger ( _Symbol , SYMBOL_SESSION_DEALS )== 0 ){ if ( OrderSend (StageOneSell,StageOneSellRes))sellticket1=( int ) OrderGetInteger ( ORDER_POSITION_ID );}
       if (sellticket1> 0 ){ Print ( "Order Placed " , "Order Ticket " , sellticket1, " Order Lots " , OrderGetDouble ( ORDER_VOLUME_INITIAL )); return ;} else { Print ( "Order Placement Unsuccessful " , GetLastError ()); return ;}
 
MetaNt :

Evet, istendiği gibi aşağıda


Bu kod doğru değil, yaptığınız gibi kullanamazsınız.

buyticket1=( int ) OrderGetInteger ( ORDER_POSITION_ID );

Siparişiniz/anlaşmanız hakkında bilgi almak için StageOneBuyRes yapısını kullanmanız gerekir. Esas olarak ret kodunu kontrol etmeniz gerekir, lütfen belgelere bakın veya OrderSend() kullanım örnekleri için sitede arama yapın, mql4 ile olduğu gibi çalışmaz.

Kodunuz muhtemelen olmadığı yerde bir hata döndürüyor. Bir pozisyonun açık mı yoksa artmış mı olduğunu görmek için terminali kontrol ettiniz mi?

Bir yan not olarak, ancak bu konuyla ilgili değil, aşağıdaki kod muhtemelen düşündüğünüzü yapmıyor.

 SymbolInfoInteger ( _Symbol , SYMBOL_SESSION_DEALS )
 

Doğru, bunu düzelteceğim.

Terminali kontrol ederek ne demek istediğinden emin değilim, orada gösterilen herhangi bir geriye dönük test sonucu yok.  

 
MetaNt :

Doğru, bunu düzelteceğim.

Terminali kontrol ederek ne demek istediğinden emin değilim, orada gösterilen herhangi bir geriye dönük test sonucu yok.  

Ah tamam, bunun bir geriye dönük test olduğunu anlamadım.
 
angevoyageur :

Bu kod doğru değil, yaptığınız gibi kullanamazsınız.

Siparişiniz/anlaşmanız hakkında bilgi almak için StageOneBuyRes yapısını kullanmanız gerekir. Esas olarak ret kodunu kontrol etmeniz gerekir, lütfen belgelere bakın veya OrderSend() kullanım örnekleri için sitede arama yapın, mql4 ile olduğu gibi çalışmaz.


BTW, bu hatanın ortaya çıkmasına nasıl neden olacak?