[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 162

 
igrok2008 :
bir demo hesabında Alpari'dir ve test edilmektedir TİCARET YAPILMAMAKTADIR!!!!! MT4 terminal inşa 229........ söyle bana!!!!!!
Alpari'm de var, ancak her şey belirli bir kayıp ve alım durdurmadan ticaret yapıyor, sadece fiyat ve sipariş ve pozisyon verdikten sonraki sonraki adımda zarar durdur
 
todem :
NormalizeDouble işlevini kullanarak zararı durdur, fiyatı al ve aç fiyatını normalleştirmeniz gerekir

normalleştirme IMHO olmadan 130. bir hata olacak, ancak evet, bu da gerekli
[Deleted]  
Belki para birimiyle düşündüm. Hem euro hem de pound ile denedim HİÇBİR ŞEY TİCARET !!!!! bana kim söyleyebilir lütfen!!!!!!
 
igrok2008 :
Belki para birimiyle düşündüm. Hem euro hem de pound ile denedim HİÇBİR ŞEY TİCARET !!!!! bana kim söyleyebilir lütfen!!!!!!
benim işim önermek: SL ve TP'yi kaldırın. yerine 0...
 
igrok2008 :
Belki para birimiyle düşündüm. Hem euro hem de pound ile denedim HİÇBİR ŞEY TİCARET !!!!! bana kim söyleyebilir lütfen!!!!!!
ticket1= OrderSend ( Symbol (), OP_BUY, Lots, Ask, 10 , SL, TP, NULL , MagicNumber);
if (ticket1!= 0 ) { return ( 0 );}
else Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ()); 
     
ya da öylesine yeniden yapmak çünkü çok şey istiyorsun ve hemen
[Deleted]  
todem :
Alpari'm de var, ancak her şey belirli bir kayıp ve alım durdurmadan ticaret yapıyor, sadece fiyat ve sipariş ve pozisyon verdikten sonraki sonraki adımda zarar durdur

danışmanda, hem durağı hem de izi 0'a ayarladım, hala ticaret yapmıyor. Danışmanın bir kopyasını çıkardım, kodun durağını kaldırdım, iz hala ticaret yapmıyor

Durmadan ve iz bırakmadan EA kodu

 //+------------------------------------------------------------------+
//|                                                eSvechi+MA_v1.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"


//---- input parameters
extern int        MA= 13 ;
extern double     Lots= 0.1 ;
extern int        StopLoss= 100 ;
extern int        TakeProfit= 100 ;
extern int        MagicNumber= 501 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
  
bool CheckOrders( int Type)
{
 bool Result=True;
 for ( int i= 0 ;i< OrdersTotal ();i++)
   if ( OrderSelect (i,SELECT_BY_POS))
   if (OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol ())
       if (OrderType()==Type)
        {
         if (Type==OP_BUY)
           if (!OrderClose(OrderTicket(),OrderLots(),Bid, 0 ))
             Result=False;
         if (Type==OP_SELL)
           if (!OrderClose(OrderTicket(),OrderLots(),Ask, 0 ))
             Result=False;
         } 
         else Result=False;
 return (Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists( int Type)  
{
 bool Result=True;
 for ( int i=OrdersHistoryTotal()- 1 ; i>= 0 ;i--)
   if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY))
   if (OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol () && OrderCloseTime() >= Time[ 0 ] && OrderType() == Type)
    {
     Result=False;
     break ;
     }
 return (Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

         // Узнаем уровень стопов и спрэд
     int Spread = MarketInfo( Symbol (), MODE_SPREAD);
     int StopLevel = MarketInfo( Symbol (), MODE_STOPLEVEL);

         //Рассчитываем значения средних на 0-ом и 1-м баре
     double MA_0 = iMA ( NULL , 0 , MA, 0 , 1 , 1 , 0 );    
     double MA_1 = iMA ( NULL , 0 , MA, 0 , 1 , 1 , 1 );
    
 //-------------открытие позиции Buy покупка-----------------
 //сравниваем на 1-м баре цену закр. и откр. между собой и с МА, на 0-м баре откр. меньше МА закр. больше МА
     if (
       (Open[ 0 + 1 ]<Close[ 0 + 1 ])&& 
       (Close[ 0 + 1 ]<MA_1)&&
       (Open[ 0 ]<MA_0)&&
       (Close[ 0 ]>MA_0)
      )
     if (CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if (! OrderSend ( Symbol (), OP_BUY, Lots, Ask, 10 , 0 , 0 , NULL , MagicNumber))
         Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ()); 
       }
     //-------------------Конец блока покупки -------------------
     //-------------Открытие позиции Sell продажа----------------   
     if (
       (Open[ 0 + 1 ]>Close[ 0 + 1 ])&& 
       (Close[ 0 + 1 ]>MA_1)&&
       (Open[ 0 ]>MA_0)&&
       (Close[ 0 ]<MA_0)
      )
     if (CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if (! OrderSend ( Symbol (), OP_SELL, Lots, Bid, 10 , 0 , 0 , NULL , MagicNumber))
         Print ( "Не открыт ордер Sell. Ошибка №" , GetLastError ()); 
       }
//-----------------конец блока продажи ----------------------
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
int OrderOp( int ord, double lot) // открытие ордера бай 
{
   double TP,SL,ticket;
   string ccm= "" ;
   int ticket1;
   j2=autorazmer();
   
   if (ord==OP_BUY) {
   l= NormalizeDouble (MarketInfo( Symbol (), MODE_ASK), MarketInfo( Symbol (), MODE_DIGITS));
   
      ccm= "ZZ:" + Period ()+ " -> BUY" ;
      ticket1= OrderSend ( Symbol (),ord,lot,l, 3 , 0 , 0 ,ccm,MG, 0 , White );
      OrderPrint();
   }
   if (ord==OP_SELL) {
   h= NormalizeDouble (MarketInfo( Symbol (), MODE_BID), MarketInfo( Symbol (), MODE_DIGITS));
   
      ccm= "ZZ:" + Period ()+ " -> sell" ;
      ticket1= OrderSend ( Symbol (),ord,lot,h, 3 , 0 , 0 ,ccm,MG, 0 , White );
      OrderPrint();
   }
   if (ord==OP_BUYSTOP) {
   l= NormalizeDouble (MarketInfo( Symbol (), MODE_ASK), MarketInfo( Symbol (), MODE_DIGITS));
   lo= NormalizeDouble (l+j2* Point , Digits );
      ccm= "ZZ:" + Period ()+ " -> BUYstop" ;
      ticket1= OrderSend ( Symbol (),ord,lot,lo, 3 , 0 , 0 ,ccm,MG, 0 , White );
      OrderPrint();
   }
   if (ord==OP_SELLSTOP) {
   h= NormalizeDouble (MarketInfo( Symbol (), MODE_BID), MarketInfo( Symbol (), MODE_DIGITS));
   ho= NormalizeDouble (h-j2* Point , Digits );
      ccm= "ZZ:" + Period ()+ " -> sellstop" ;
      ticket1= OrderSend ( Symbol (),ord,lot,ho, 3 , 0 , 0 ,ccm,MG, 0 , White );
      OrderPrint();
   }
   return (ticket1);
}
alpari için emir açma fonksiyonunu kullanabilirsiniz...
[Deleted]  
her yerde hata 131
[Deleted]  

Basit soru. Söyle kim yapabilir :)

Bir enstrümana 2 danışman koymam gerekirse.

Terminalde iki pencere açıp botumu her birine mi bağlıyorum?

Mesela sadece 1 piyasa emri ile çalışan 2. bot, 1. bot tarafından açılan fırsatlar varsa fırsat açamayacak mı?

Yoksa 2. bot, 2. botun kapanış kriterlerini karşılarsa 1. botun fırsatlarını kapatabilecek mi?

 

Herkese merhaba...

Lütfen bana MetaTrader 4 geçmiş dosyalarının yolunu nasıl toplayacağımı söyler misiniz? "c:\program files\metatrader 4\history\alpari-classic\" gibi

Terminalin yüklendiği klasörün yolunu döndüren TerminalPath() gibi sihirli bir işlev dizesi olduğunu biliyorum. Ayrıca, bir tarih ve sonra da benim pahasına yaşayan zengin ofislerin gizemli isimleri olduğu açıktır. Onlara nasıl gidilir?