Uzman Danışmanların uygulanmasının tartışılması. - sayfa 7

 
merhaba arkadaşlar, kavşaklarda işlem açıp kapatacak 2 göstergeye dayalı bir danışman oluşturabilecek büyük bir istek, fotoğrafa bakın, kendim denedim, hiçbir şey olmadı ((((((((((((((((((((((((
 
katrina87 :
merhaba arkadaşlar, kavşaklarda işlem açıp kapatacak 2 göstergeye dayalı bir danışman oluşturabilecek büyük bir istek, fotoğrafa bakın, kendim denedim, hiçbir şey olmadı ((((((((((((((((((((((((

Kendim kullanmadım. Onunla kod tabanında yeni tanıştım. Size uygun olup olmadığına bakın. Ve bu arada, kod tabanında böyle danışmanlar var. Arama yapacağınız siteyi google'da aratabilirsiniz. https://www.mql5.com/ru/code/12375

Советник на основе отскока от границы канала МА
Советник на основе отскока от границы канала МА
  • www.mql5.com
Для торговли используются показания индикатора Moving Average. Если цена отклонилась от линии Moving Average на определенное количество пунктов, то выставляется ордер в сторону линии Moving Average. Советник может приносить прибыль, но она получается маленькой. Также для него требуется большой депозит. На рисунке сплошная красная линия —...
 
merhaba, bir ticaret robotu yazmak istiyorum, fikir basit ve dahice. Başlangıç olarak, aynı seviyelerin gücünü göstermek için direnç destek seviyeleri göstergesine ihtiyacım var, örneğin: Yüksek orta düşük. herhangi bir öneri var mı? hepinize şimdiden teşekkürler.
 
paradisehell1 :
merhaba, bir ticaret robotu yazmak istiyorum, fikir basit ve dahice. Başlangıç olarak, bu seviyelerin gücünü göstermek için direnç destek seviyeleri göstergesine ihtiyacım var, örneğin: Yüksek orta düşük. herhangi bir öneri var mı? hepinize şimdiden teşekkürler.

Serbest meslek, Düşünce Devini ve Rus Demokrasisinin Babasını kurtaracak.

 
paradisehell1 :
merhaba, bir ticaret robotu yazmak istiyorum, fikir basit ve dahice. Başlangıç olarak, bu seviyelerin gücünü göstermek için direnç destek seviyeleri göstergesine ihtiyacım var, örneğin: Yüksek orta düşük. herhangi bir öneri var mı? hepinize şimdiden teşekkürler.

Bu fikrin parlak olduğu bana göre açık değil. Bunun için bir motivasyon yok. Birinin adına konuşmayı taahhüt etmiyorum, ama bir şey bana onlarla aynı olduğunu söylüyor. Her şeyi bu şekilde ayarlayabilirsiniz. En azından birkaç ay boyunca, bu sistem kullanılarak demo veya gerçek olarak manuel olarak işlem gören istatistikleri düzenleyin. Ayda ne kadar kazanıldı, marj seviyesi ve dezavantajı neydi. İlginç göstergeler varsa, size ücretsiz olarak yazacak birini kolayca bulabilirsiniz. Ve böylece, kod tabanında bir şey arayabilirsiniz. Ve bu arada, programcıların işi bu sitede çok ucuz.

 
Merhaba! Sorumun birçok kez gündeme geldiğinden neredeyse %100 eminim. Bu nedenle, biri bana nereye bakmam gerektiğini söylerse çok minnettar olurum. Soru şudur - danışmanda belirli bir kâra ulaşıldığında ticareti durdurma olasılığı nasıl uygulanır? Diyelim ki kâr 200$ oldu - bu kadar, bugün artık ticaret yapmıyoruz.
 
altec3 :
Merhaba! Sorumun birçok kez gündeme geldiğinden neredeyse %100 eminim. Bu nedenle, birisi bana nereye bakmam gerektiğini söylerse çok minnettar olurum. Soru şudur - danışmanda belirli bir kâra ulaşıldığında ticareti durdurma olasılığı nasıl uygulanır? Diyelim ki kâr 200$ oldu - bu kadar, bugün artık ticaret yapmıyoruz.

Bu MT4 için mi yoksa MT5 için mi?

Bir pozisyon açmadan hemen önce, dönem için kârın daha büyük olup olmadığını kontrol edin - çıkış

 void OnTick ()
 {
 ...
 if (GetProfitHistoryInCurrency( _Symbol , 0 , Magic) > 200 ) // 0 - сегодня, 1 - вчера, 2 -позавчера
   return ;
 
 OrderSend (...);


Tüm şubeyi okuyun, ihtiyacınız olan kod var:

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

EA'da kapatılan siparişlerin sayısını nasıl hesaplayabilirim?

Vitaly Muzichenko , 2016.04.12 10:36

 //===============================================================================================
//---------------------- Возвращает профит за выбранный период с истории -----------------------+
//===============================================================================================
double GetProfitHistoryInCurrency( string symb= "0" , int index=- 1 , int mg=- 1 ) {
 if (symb== "0" ) { symb= Symbol ();}
 datetime DailyStartTime= iTime (symb, PERIOD_D1 ,index);
 double DailyProfit= 0 ;
   for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) {
     if (( OrderSymbol ()==symb || symb== "" ) && (mg< 0 || OrderMagicNumber ()==mg)) {
     if (( OrderCloseTime ()>=DailyStartTime && OrderCloseTime ()<DailyStartTime+ 86400 ) || index< 0 )
      DailyProfit+=( OrderProfit ()+ OrderCommission ()+ OrderSwap ());
 }}}
   return (DailyProfit);
 }
Использование:  GetProfitHistoryInCurrency(_Symbol, 0 , Magic); // 0 - сегодня, 1 - вчера, 2 -позавчера

 
Vitaly Muzichenko :

Bu MT4 için mi yoksa MT5 için mi?

Bir pozisyon açmadan hemen önce, dönem için kârın daha büyük olup olmadığını kontrol edin - çıkış


Şubenin tamamını okuyun, ihtiyacınız olan kod var:


Teşekkürler, kesinlikle bakacağım! Evet ve kod MT5 için gereklidir.
 

Tünaydın!

Mevcut gün için karı belirleyen bir fonksiyon yazmaya çalışıyorum:

 //+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect ( TimeCurrent ()- PeriodSeconds ( PERIOD_D1 ), TimeCurrent ());
   uint      total       = HistoryDealsTotal ();   // количество сделок в истории
   ulong     ticket      = 0 ;                     // тикет сделки в истории
   long      type        = 0 ;                     // тип сделки
   double    profit      = 0.0 ;                   // финансовый результат сделки
   double    commission  = 0.0 ;                   // коммиссия по сделке
   double    DayProfit   = 0.0 ;                   // прибыль за текущие сутки
//--- for all deals
   for ( uint i= 0 ; i<total; i++)
     {
       if ((ticket= HistoryDealGetTicket (i))> 0 )       //--- если имеются сделки, то...
        {
         profit      = HistoryDealGetDouble (ticket, DEAL_PROFIT );
         commission  = HistoryDealGetDouble (ticket, DEAL_COMMISSION );
         if ( HistoryDealGetInteger (ticket, DEAL_TYPE )!= DEAL_TYPE_BALANCE )
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

Lütfen bana işlevde nasıl olduğunu söyle

 HistorySelect (datetime from_date,datetime to_date)
geçerli günden başlayarak bir dönem belirtin. Dönemin sonunun to_date=TimeCurrent() olduğu açıktır, from_date döneminin başlangıcı tam olarak geçerli günden 00:00:00'dan başlayacak şekilde nasıl doğru bir şekilde belirlenir?
 
altec3 :
Tünaydın! Lütfen işlevde geçerli günden başlayarak süreyi nasıl belirleyeceğimi söyleyin. Dönemin sonunun to_date=TimeCurrent() olduğu açıktır, from_date döneminin başlangıcı tam olarak geçerli günden itibaren 00h:00m:00'dan başlayacak şekilde nasıl doğru bir şekilde belirlenir?

Bugün en az bir tik olduğunu varsayarsak, algoritma şu şekildedir: şimdiki zamanı MqlDateTime yapısına gönderiyoruz . Daha sonra bu yapıda saatleri, dakikaları ve saniyeleri sıfırlıyoruz. Düzenlenen yapıyı zamanla dönüştürmek için kalır:

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   MqlDateTime STimeCurrent;
   TimeToStruct ( TimeCurrent (),STimeCurrent);
   STimeCurrent.hour= 0 ;
   STimeCurrent.min= 0 ;
   STimeCurrent.sec= 0 ;
   datetime start_day= StructToTime (STimeCurrent);
   Print (start_day);
  }
//+------------------------------------------------------------------+


Sonuç:

 2020.09 . 03 00 : 00 : 00
Dosyalar:
1.mq5  3 kb