Hatalar, hatalar, sorular - sayfa 770

 
maryan.dirtyn :
...

ps standart kütüphaneleri kullanmaktan bahsedenler lütfen rahatsız etmeyin, uzmanımın ne yaptığını bilmek istiyorum ve daha sonra düzleştirilmeyeceğini ummuyorum

Ancak standart kütüphaneler görüntülenebilir/incelenebilir ve hangi hataların yapıldığı anlaşılabilir. Çok iyi bir fırsat.
 

Hemen al ve dur ayarlayarak sipariş açmak için basit bir çocuk fonksiyonu yazmanızı şiddetle rica edebilir miyim .. Bunu son 6 saattir yapmaya çalışıyorum ve bunun imkansız olduğunu düşünüyorum.

Standart bir şey kullanmayacağım kusura bakmayın..

 
maryan.dirtyn :

Hemen al ve dur ayarlayarak sipariş açmak için basit bir çocuk fonksiyonu yazmanızı şiddetle rica edebilir miyim .. Bunu son 6 saattir yapmaya çalışıyorum ve bunun imkansız olduğunu düşünüyorum.

Standart bir şey kullanmayacağım kusura bakmayın..

Standart kitaplıklarda sizi bu kadar korkutan nedir? Trade.mqh dosyasında ne olduğuna bakın:

Bir pozisyon açma işlevi:

 //+------------------------------------------------------------------+
//| Open position.                                                   |
//+------------------------------------------------------------------+
bool CTrade::PositionOpen( const string symbol, const ENUM_ORDER_TYPE order_type, const double volume,
                           const double price, const double sl, const double tp, const string comment)
  {
//--- check stopped
   if ( IsStopped ( __FUNCTION__ )) return ( false );
//--- clean
   ClearStructures();
//--- checking
   if (order_type!= ORDER_TYPE_BUY && order_type!= ORDER_TYPE_SELL )
     {
      m_result.retcode= TRADE_RETCODE_INVALID ;
      m_result.comment= "Invalid order type" ;
       return ( false );
     }
//--- setting request
   m_request.action      = TRADE_ACTION_DEAL ;
   m_request.symbol      =symbol;
   m_request.magic       =m_magic;
   m_request.volume      =volume;
   m_request.type        =order_type;
   m_request.price       =price;
   m_request.sl          =sl;
   m_request.tp          =tp;
   m_request.deviation   =m_deviation;
   m_request.type_filling=m_type_filling;
   m_request.comment     =comment;
//--- action and return the result
   return ( OrderSend (m_request,m_result));
  }

//---

Sizin girişimlerinizden çok farklı olmadığını kabul edin. ClearStructures () işlevine dikkat edin. Bir pozisyon açtıktan sonra stop ayarlamanız gerekirse, aşağıdaki fonksiyon size bu konuda yardımcı olacaktır:

 //+------------------------------------------------------------------+
//| Modify specified opened position.                                |
//+------------------------------------------------------------------+
bool CTrade::PositionModify( const string symbol, const double sl, const double tp)
  {
//--- check stopped
   if ( IsStopped ( __FUNCTION__ )) return ( false );
//--- clean
   ClearStructures();
//--- setting request
   m_request.action= TRADE_ACTION_SLTP ;
   m_request.symbol=symbol;
   m_request.sl    =sl;
   m_request.tp    =tp;
//--- action and return the result
   return ( OrderSend (m_request,m_result));
  }

//---

Her şey basit ve her şey çalışıyor. Ve sonra zaten uygun gördüğünüz gibi ekleme / değiştirme / deneme yapabilirsiniz.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
maryan.dirtyn :

Hemen al ve dur ayarlayarak sipariş açmak için basit bir çocuk fonksiyonu yazmanızı şiddetle rica edebilir miyim .. Bunu son 6 saattir yapmaya çalışıyorum ve bunun imkansız olduğunu düşünüyorum.

Standart bir şey kullanmayacağım kusura bakmayın..

Özellikle senin için:

 #include <trade\trade.mqh>
void OnStart ()
  {
   CTrade trade;
   trade.Buy( 1.0 , "EURUSD" , SymbolInfoDouble ( "EURUSD" , SYMBOL_ASK ), 1.20000 , 1.50000 , "Yeah, baby!" );
  }

Bilinmeyene dokunmak için bu kodu komut dosyasına yapıştırın, derleyin ve ardından imleci Satın Al'a getirip Alt+G tuşlarına basın.

Tüm kütüphanelerin içlerinde bir yolculuk başlayacak. Aynı zamanda ve hata işleme görünümü.

 
Renat :

Özellikle senin için:

Bilinmeyene dokunmak için bu kodu komut dosyasına yapıştırın, derleyin ve ardından imleci Satın Al'a getirip Alt+G tuşlarına basın.

Tüm kütüphanelerin içlerinde bir yolculuk başlayacak. Aynı zamanda ve hata işleme görünümü.


 "Yeah, baby!"
Ama bunu seslendirmek bile mümkün ve her şey genel olarak çikolatada olacak. )))
 

anladığım kadarıyla bundan başka yol yok, sadece doğada yok mu?

 #include <trade\trade.mqh>
 
maryan.dirtyn :

anladığım kadarıyla bundan başka yol yok, sadece doğada yok mu?

Ana dosyaya benzer-(ler) işlevi-(ler) yapın ve hiçbir şey eklemeniz gerekmez.
 

yani yapıyorum))) 6. saat .. ve hatanın nerede olduğunu anlayamıyorum

standart kitaplıkları kullanma isteksizliği, bayrakların ve global değişkenlerin işlevlerin içinde kullanılması gerçeğinden kaynaklanmaktadır ve trade.mqh ve diğerlerini parçalara ayırmanın makul görünmemesi

 void OnTick (){ if ( PositionsTotal ()< 1 ){OPEN();}}

bool OPEN(){
             MqlTradeRequest request; ZeroMemory(request);
             MqlTradeResult  result;  ZeroMemory(result);
             

             request.symbol       = _Symbol ;
             request.action       = TRADE_ACTION_DEAL ;
             request.type_filling = ORDER_FILLING_FOK ;
             request.deviation    = 100 ;
             request.volume       = NormalizeDouble ( 2 , 2 );
             request.type         = ORDER_TYPE_BUY ;
             request.price        = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ), _Digits );
             request.tp           = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) + 500 * _Point , _Digits );
             request.sl           = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) - 500 * _Point , _Digits );

             OrderSend (request,result);     
                        
             if (result.retcode== 10009 || result.retcode== 10008 )   Print ( "Succsesful open" );
             else                                                Print ( "Error open: " , DoubleToString ( GetLastError (), 0 ), "  response code: " ,result.retcode);
    
   return ( true );}
 
maryan.dirtyn :

yani yapıyorum))) 6. saat .. ve hatanın nerede olduğunu anlayamıyorum

standart kitaplıkları kullanma isteksizliği, bayrakların ve global değişkenlerin işlevlerin içinde kullanılması gerçeğinden kaynaklanmaktadır ve trade.mqh ve diğerlerini parçalara ayırmanın makul görünmemesi

Hangi sunucuda ve hangi sembolü deniyorsunuz?

Kodunuzu MetaQuotes-Demo'da çalıştırdım ve anlaşma başarıyla gerçekleşti:

2012.07.11 15:08:36     Trades  '1026582': deal #109507221 buy 2.00 EURUSD at 1.22625 done (based on order #115678901)
2012.07.11 15:08:36     Trades  '1026582': order #115678901 buy 2.00 / 2.00 EURUSD at 1.22625 done
2012.07.11 15:08:36     Trades  '1026582': instant buy 2.00 EURUSD at 1.22627 sl: 1.22127 tp: 1.23127 (deviation: 100)
 

MetaQuotes-Demo

Giriş: 1219233

EURUSD

Bir poundda denedim, aynı hikaye. durak yok. Her şeyi test cihazında yapıyorum

655 oluşturun (eğer yardımcı olursa)