MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 492

 
Ihor Herasko :

SymbolSelect işlevine bakın.

Teşekkür ederim!

 
Lütfen bana grafiği programlı olarak nasıl daha da sola kaydıracağımı söyleyin.Teşekkürler!
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

labvic , 2018.03.12 14:43

Merhaba! Bu sorunla karşılaştı:

Zararı durdurmadan bir ticaret açarım ve kar alırım:

 OrderSend ( "EURUSD" , OP_BUY , 0.1 , Ask , 0 , 0 , 0 , "" ,Magic, 0 ,Red);

Bu siparişi kapatmak istiyorum

 OrderClose (Magic, OrderOpenPrice (), Ask , 0 ,Red);

Bir hata alıyorum: OrderClose hatası 131

OrderOpenPrice () yerine 0.1 veya OrderLots() belirtirsem, hata şudur: OrderClose hatası 138

Sorun nedir?

Belgelere bakılırsa, daha tuhaf bir kapanış yazmak çok zor.

 bool    OrderClose (
   int         ticket,       // номер ордера
   double      lots,         // количество лотов
   double      price,       // цена закрытия
   int         slippage,     // максимальное проскальзывание
   color       arrow_color   // цвет
   );
Bilet yerine sihir yazılır, cilt yerine açılış fiyatı yazılır. Belgeleri okuyun ve kod yazarken sık sık incelemekten çekinmeyin.


 
Nikolay Gaylis :
Lütfen bana grafiği programlı olarak nasıl daha da sola kaydıracağımı söyleyin.Teşekkürler!

Otomatik kaydırma ve ofseti devre dışı bırakmanız (sırasıyla CHART_AUTOCROLL ve CHART_SHIFT grafik özellikleri) ve ardından ChartNavigate() kullanmanız gerekir .

 
Ihor Herasko :

Otomatik kaydırma ve ofseti devre dışı bırakmanız (sırasıyla CHART_AUTOCROLL ve CHART_SHIFT grafik özellikleri) ve ardından ChartNavigate() kullanmanız gerekir .

teşekkür etmek!

 

Herkese hoş geldiniz! Ben bir EA oluşturmaya çalışan acemiyim . Nasıl çalıştığını görmek için basit bir tane yazdı. Sinyalin göründüğü anda uyarı çalışmıyor. Hatanın ne olduğu belli değil. Hatamın ne olduğunu anlamama yardım eder misin?

 //+------------------------------------------------------------------+
//|                                             тенк больше кидж.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
 double tenkan= iIchimoku ( NULL , 0 , 9 , 26 , 52 , MODE_TENKANSEN , 1 );       //ЗНАЧЕНИЕ ТЕНКАН
 double kijun= iIchimoku ( NULL , 0 , 9 , 26 , 52 , MODE_KIJUNSEN , 1 );         // ЗНАЧЕНИЕ КИДЖУН
 //-------------------------------------------------------------------+
   if (tenkan>kijun)                                               //"ЗОЛОТОЙ КРЕСТ"
   Alert ( "ЗОЛОТОЙ КРЕСТ" );                                       // ОПОВЕЩЕНИЕ
   return ;
  }

Saygılarımla, Andrew.

Dosyalar:
 
Andrey Ilinykh :

Herkese hoş geldiniz! Ben bir EA oluşturmaya çalışan acemiyim . Nasıl çalıştığını görmek için basit bir tane yazdı. Sinyalin göründüğü anda uyarı çalışmıyor. Hatanın ne olduğu belli değil. Hatamın ne olduğunu anlamama yardım eder misin?

Saygılarımla, Andrew.

Çalışıyor! Test cihazında kontrol ediyor musunuz?

 
Nikolay Gaylis :

Çalışıyor! Test cihazında kontrol ediyor musunuz?

Nedense öyle düşündüm.

Hayır, henüz test cihazıyla ilgilenmedim

EA derlendi, dakika çizelgesine koydum ve takip ediyorum. Bulutun rengi değişiyor ancak uyarı penceresi açılmıyor. Bir yazılım hatası mı?

Teşekkür ederim!

 
void Laguerr::  deleteOrders()   //  (int otype)
{
   int k = OrdersTotal ();
   datetime mDateOrderOp; 
   
   
   for ( int i=k- 1 ;i>= 0 ;i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol ()==nameSym && OrderMagicNumber ()== Magic && OrderCloseTime ()== 0 )   // && OrderType() == otype)
         {
             if ( OrderType ()== OP_BUYSTOP || OrderType ()== OP_SELLSTOP ) 
            {
               mDateOrderOp = OrderOpenTime ();
               int   mTick = OrderTicket ();
               //if (OrderType()== OP_BUYSTOP) mOpType = OP_SELL;
               bool flag= false ;
               for ( int pos=k- 1 ;pos>= 0 ;pos--)
               {
                   if ( OrderSelect (pos, SELECT_BY_POS , MODE_TRADES ))
                  {
                     if ( OrderSymbol ()==nameSym && OrderMagicNumber ()== Magic && OrderCloseTime ()== 0 )   // && OrderType() == otype)
                     {
                         if ( OrderOpenTime () == mDateOrderOp && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL )  ) 
                        {
                            flag = true ;   
                             break ;
                        } 
                     }
                  }
               }
               if (!flag)
               {
                   if (! OrderDelete (mTick))
                   Print ( "Ошибка delete ордера . Код ошибки=" , GetLastError ()); 
                   break ;
               }
             } 
         }
      }
   }
}
Herkese merhaba ! durum şudur: belirli TP ve SL ile bir emir açılır. ancak SL çalışır ve ters yönde ilk emrin SL fiyatından ikinci bir emir açılır (TP, birinci emirdeki kayıp puanların sayısına eşittir). ikincil bir SL durumunda, üçüncü sıranın, ikinci sıranın SL'sinin değerine eşit bir fiyatla (TP'ye karşılık gelen) ikinci sıranın tersi yönünde açılması gerekir. şimdi kodumda, ilk sipariş TP tarafından kapatılırsa ikinci sipariş silinir. Soru: Bu üç emri açmanın bu kademesi nasıl yapılır?
 
Söyleyin bana, Expert Advisor'ın sembolle açtığı tüm siparişleri kapatma işlevi doğru uygulandı mı?
 void OrderCloseAll( double close_price)
{
   for ( int i= OrdersTotal (); i>- 1 ; i--)
      {
         OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic) OrderClose ( OrderTicket (),lot,close_price,slippage, clrWhite );
      }

}