[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 142

 
E_mc2 >> :

Aşırı uyumaktan korkuyorsanız, bu satırı değiştirin

\ if ( WarningMode>0 ) PlaySound(ses dosyası); \

bu konuda gösterge

\ if ( WarningMode>0 && shift==0) GlobalVariableSet("Alarm",1); \

ve bu göstergeyi oluştur

 int start ( )
{ if ( GlobalVariableGet ( "Будильник" ) ) PlaySound ( "news.wav" ) ;
return ( 0 ) ;
}

Ve uykuya daldığınızda, ana göstergenin yanı sıra bir çalar saatiniz de var.

F3 tuşu ile "Alarm clock" değişkeni manuel olarak değiştirilerek çalar saat kapatılır, 0 değerini atamanız gerekir.

 
Urain >> :

Ve neden buna ihtiyacın var? Biraz daha anlat, belki çözüm yakındır ama sen doğru sormayı bilmiyorsun ki insanlar anlasın.

Yazdıklarınıza göre elimde iki çözüm var hangisini istersiniz, ikisini birden yazmak çok uzun :)

..

Bu arada, bu kadar uzun kodları bir dosya olarak eklemek daha iyidir.

Evet ve kod için özel bir SRC düğmesi var

Evet, sinyali kaçırmamak için buna ihtiyacım var)) Yalnızca bir uyarı dağıtıldığında, özellikle geceleri kaçırmak kolaydır (((Bu ne anlama geliyor - bir çalar saat ?? Ne olacak??

Hattı değiştirdim..yeni bir hindi oluşturdum...ama anlamadım...benim için her zaman,sürekli çalışıyor,hindi sinyal verse de vermese de... Hatta türkiyeden sinyal gelmiyorsa çalar saat sürekli bip sesi çıkarır))) Sinyal var sinyal yok ama çalar saat çalışıyor..

 
E_mc2 >> :

Evet, sinyali kaçırmamak için buna ihtiyacım var)) Yalnızca bir uyarı dağıtıldığında, özellikle geceleri kaçırmak kolaydır (((Bu ne anlama geliyor - bir çalar saat ?? Ne olacak??

Göstergenizdeki satırı yukarıda açıklandığı gibi değiştirin.

Ekli göstergeyi derleyin ve çalıştırın.

Göstergeyi kapatana veya globali sıfırlayana kadar her tikte çalacaktır. değişken "Çalar saat"

Dosyalar:
wxinptvxq.mq4  1 kb
 

Hareketli Ortalama Uzman Danışman.

Bir sipariş açmak için KimIV işlevleri eklendi (GetSizeLot() OpenPosition CorrectTF(int TimeFrame=0) GetNameOP(int op) ModifyOrder() ExistPositions() Message()). Henüz kapanma aşamasına gelmedi. Gösterge verilerinin tek bir yerde olması ve programın herhangi bir yerinde kullanılabilmesi için void Indicat_Var() göstergesinden kendi veri işlevimi oluşturdum .

CheckForOpen() işlevinden Indicat_Var() işlevine çağrı yapıldığında, her şey yolundadır, ancak CheckForClose() işlevinden Indicat_Var() işlevine başvururken, siparişler neden kapatılmıyor anlamıyorum

Ve bence, CalculateCurrentOrders (string sembolü) ve ExistPositions () işlevleri birbirini kopyalıyor.Eğer haklıysam, bundan nasıl kaçınılır?

Anlamama yardım et

Dosyalar:
magkimiv.mq4  15 kb
 

Partiyi hesaplama işlevi, başlangıçta danışmanda zaten sağlanmıştı. Başka bir tane eklediyseniz (GetSizeLot()), o zaman (en azından) orijinal olanı kaldırın, - LotsOptimized()

//------------------------------------------------

Gerçekten. Açık pozisyonların varlığını belirlemeye yönelik işlevler birbirini kopyalar.

Bunlardan biri çıkarılabilir. (Nasıl farklı olduklarını ve hangisine ihtiyacınız olduğunu öğrenin!)

//------------------------------------------------ -----

Makaleye bakın https://www.mql5.com/en/articles/1385

Orada, sadece, bu danışmanın Rusça dilinden bir modifikasyonu verildi. koddaki yorumlar.

Değişiklik, - Kesinlikle, kapanışta.

 

SİPARİŞİN AÇILMA VE KAPANMA NOKTALARINI Çizelgede işaretliyor muyuz?

Profesyonellere soru - belki böyle bir gösterge veya komut dosyası vardır,

grafikte bir açılış ve kapanış noktası çizen

emirler? Onları bir çizgi ile birleştirir, yeşil - kâr,

kırmızı - kayıp. Tarihteki hataları analiz etmek için kullanışlıdır!

 

Unutma, bu soruyu zaten yanıtladın.

Doğrudan hesap geçmişinden anlaşmayı alıp fare ile acc'ye sürükleyebilirsiniz. takvim.

Ve istediğini al.

Ben de senaryoyu bir yerde görmüştüm. Görünüşe göre I. Kim'in böyle bir senaryosu vardı.

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32

 

İmleç adresindeki uzmanlardan ücretli yardım rica ediyorum,

Teşekkür ederim!

 

Trend değiştiğinde (açılış koşulları) açık emirlerimin neden kapanmadığını anlamak için kim yardım edebilir? Ve bu hatayı nasıl düzeltebilirim!

İşte sahip olduğum kod:

 extern int TP = 40 ;              //уровень Take Profit
extern int SL = 0 ;                //уровень Stop Loss
extern double Lots1 = 0.2 ;        //лот основной сделки
extern double Lots2 = 0.1 ;        //лот вспомогательных сделок 
extern int slippage = 2 ;          //проскальзование
int MagicNumber1 = 5345 ; //магическое число сделки BUY
int MagicNumber2 = 1612 ; //магическое число сделки SELL
// переменная для пятизнаков
int BrokerDecimal = 1 ;
// и просто нужные переменные (типа флажки)
double ticketbuy ;
double ticketsell ;



int init ( )
   {
   // Если брокер дает котировки по валюте с точностью в пять или три знака - пипс будет меньше стандартного в 10 раз - вводим множитель   
   if ( Digits = = 3 | | Digits = = 5 ) BrokerDecimal = 10 ; 
   // Перемножить все уровни в пипсах на множитель
  SL           = SL * BrokerDecimal ; 
  TP           = TP * BrokerDecimal ;
   return ( 0 ) ;
   }

int start ( )
   {
   // Рассчеты и анализ индикаторов
   double jaw = iAlligator ( NULL , 0 , 13 , 8 , 8 , 5 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN , MODE_GATORJAW , 1 ) ; //синяя линия (челюсть)
   double teen = iAlligator ( NULL , 0 , 13 , 8 , 8 , 5 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN , MODE_GATORTEETH , 1 ) ; //красная линия (зубы)
   double lips = iAlligator ( NULL , 0 , 13 , 8 , 8 , 5 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN , MODE_GATORLIPS , 1 ) ; //зеленая линия (губы)
  
   double lastClose = iClose ( NULL , 0 , 1 ) ;
  
  
   // Собственно тело программы  
   if ( ( OrderSelect ( ticketbuy , SELECT_BY_TICKET , MODE_TRADES ) = = false | | OrderCloseTime ( ) > 0 )
     & & lips > jaw & & lastClose > lips ) // условие выставления ордеров БАЙ
    SEND_BUY ( ) ; // вынесем "модуль" выставления ордера бай - добавить внизу
  
   if ( ( OrderSelect ( ticketsell , SELECT_BY_TICKET , MODE_TRADES ) = = false | | OrderCloseTime ( ) > 0 )
     & & jaw > lips & & lastClose < jaw ) // условие выставления ордеров СЕЛЛ
    SEND_SELL ( ) ; // вынесем "модуль" выставления ордера сэлл - добавить внизу
  
   if ( OrdersTotal ( ) > = 1 )
       {
         if ( OrderSelect ( 0 , SELECT_BY_POS , MODE_TRADES ) )
           {
             if ( OrderType ( ) = = OP_BUY )
               {
                 if ( ( lips = = jaw | | lips = = teen ) & & lastClose = = lips ) // условия закрытия сделки БАЙ
                   while ( OrdersTotal ( ) > 0 )
                     {
                      CloseDirect ( 0 , "Принудительное закрытие сделки при обратном движении рынка, ticket=" ) ;
                     }
               }
             if ( OrderType ( ) = = OP_SELL )
               {
                 if ( ( jaw = = lips | | jaw = = teen ) & & lastClose = = jaw ) // условия закрытия сделки СЕЛЛ
                   while ( OrdersTotal ( ) > 0 )
                     {
                      CloseDirect ( 0 , "Принудительное закрытие сделки при обратном движении рынка, ticket=" ) ;
                     }
               }
           }
         else
           {
             Print ( "ОШИБКА в Start()(блок закрытия при обратном движении) :OrderSelect() - " , GetLastError ( ) ) ;
             return ( - 1 ) ;
           }
       }
         
   return ( 0 ) ;
   }

// "модуль" выставления ордера бай
void SEND_BUY ( )
   {
   double sl_buy ;
   if ( ! SL )
   { 
  sl_buy = 0 ;
   }
     else
     {
    sl_buy = Ask - SL * Point ;
     }
    ticketbuy = OrderSend ( Symbol ( ) , OP_BUY , Lots1 , Ask , slippage , sl_buy , Ask + TP * Point , "take_trend" , MagicNumber1 , 0 , Blue ) ;
           if ( ticketbuy = = - 1 )
           {
           Alert ( Symbol ( ) , "ошибка:бай" , GetLastError ( ) ) ;
           return ( - 1 ) ;
           }
             if ( ticketbuy > 1 )
             Alert ( Symbol ( ) , "бай - ок !" ) ;
   }

// "модуль" выставления ордера сэлл
void SEND_SELL ( )
   {
   double sl_sell ;
   if ( ! SL )
   { 
  sl_sell = 0 ;
   }
   else
   {
   sl_sell = Bid + SL * Point ;
   }
   ticketsell = OrderSend ( Symbol ( ) , OP_SELL , Lots1 , Bid , slippage , sl_sell , Bid - TP * Point , "take_trend" , MagicNumber2 , 0 , Red ) ;
         if ( ticketsell = = - 1 )
         {
         Alert ( Symbol ( ) , "ошибка:сэлл" , GetLastError ( ) ) ;
         return ( - 1 ) ;
         }
           if ( ticketsell > 1 )
           Alert ( Symbol ( ) , "сэлл - ок !" ) ;
   }

// МОДУЛЬ ЗАКРЫТИЯ СДЕЛОК ПРИ СМЕНЕ ТРЕНДА 
void CloseDirect ( int cntr , string comm )
   {
     double closeprice ;
     if ( OrderSelect ( cntr , SELECT_BY_POS , MODE_TRADES ) )
       {
         RefreshRates ( ) ;
         if ( OrderType ( ) = = OP_BUY )
          closeprice = Bid ;
         else
          closeprice = Ask ;
         if ( OrderClose ( OrderTicket ( ) , OrderLots ( ) , closeprice , 10 , Green ) )
         {
           Print ( comm , OrderTicket ( ) ) ;
         }
         else
           {
             Print ( "ОШИБКА в CloseDirect():OrderClose() - " , GetLastError ( ) ) ;
           }
       }
     else
       {
         Print ( "ОШИБКА в CloseDirect():OrderSelect() - " , GetLastError ( ) ) ;
       }
   }
 

Lütfen bana düzgünleştirilmiş bir rsi'den nasıl sinyal alacağımı söyle? (MA => RSI).