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

 

Arkadaşlar 5 haneli bir fiyatın görünmesi için ne yapılması gerektiğini söyler misiniz? Örneğin, şöyle bir şey yazıyorum:

int Quant_Bars=15;

int Ind_max = ArrayMaximum (High,Quant_Bars,1);

double Maximum=High[Ind_max];

Alert("Максимум = ",Maximum);

Ve dört ondalık basamaklı bir fiyat alıyorum.

Şimdiden teşekkürler))

 
rid >> :

Bu işlevi kodunuzda nereye koyarsınız?

Yazmanın ilk aşamasında kodum var .. Bu nedenle, gerçekten eklenecek hiçbir yer yok ....

Sihirli bir sayı ile sayı ve emirlerin nasıl hesaplanacağını bana çocukça bir şekilde açıklar mısınız?))


 
Alex5757000 писал(а) >>

Arkadaşlar 5 haneli bir fiyatın görünmesi için ne yapılması gerektiğini söyler misiniz? Örneğin, şöyle bir şey yazıyorum:

int Quant_Bars=15;

int Ind_max = ArrayMaximum (High,Quant_Bars,1);

double Maximum=High[Ind_max];

Alert("Максимум = ",Maximum);

Ve dört ondalık basamaklı bir fiyat alıyorum.

Şimdiden teşekkürler))

DoubleToStr() kullanmayı denediniz mi?

 
ArtY0m писал(а) >>

Yazmanın ilk aşamasında kodum var .. Bu nedenle, gerçekten eklenecek hiçbir yer yok ....

Sihirli bir sayı ile sayı ve emirlerin nasıl hesaplanacağını bana çocukça bir şekilde açıklar mısınız?))


Buraya bakmanın en kolay yolu https://book.mql4.com/en/

 

Lütfen yardım et. Hiçbir şey anlamıyorum.

1.mq4 (ekli) EA'nın görsel testi sırasında, 3-cci-h3 (ekli) göstergesini çizelgeye sürükleyin, o zaman, göründüğü gibi, hesaplanan cci'nin kesinlikle aynı parametreleriyle, gösterge sinyalleri ve gerçek cci (sağ üst köşedeki nesne metni) eşleşmiyor.

NİYE YA?

Ve nedense bu türkiyede uyarılar çalışmıyor.

Dosyalar:
pack_1.rar  2 kb
 
Onu bulamıyorum, bir yerde, daha yüksek zaman diliminin mumlarını genç olanın çizelgesinde (yani, her iki grafiğin mumlarını aynı anda) çeken bir göstergeye bağlantı vardı. Kim söyleyecek?
 
ArtY0m >> :

Yazmanın ilk aşamasında kodum var .. Bu nedenle, gerçekten eklenecek hiçbir yer yok ....

Sihirli bir sayı ile sayı ve emirlerin nasıl hesaplanacağını bana çocukça bir şekilde açıklar mısınız?))


Expert Advisor (en basit versiyonunda) birkaç bölümden oluşur.

İlk olarak, harici parametreler ve bir global ayarlanır. değişkenler.

Yardım edin, genellikle başlayın. ve başlatmadan arındırma. fonksiyonlar

Ardından, Expert Advisor'ın ana çalışma algoritmasının ayarlandığı BAŞLAT işlevi gelir.

Ayrıca, yardımcı, kullanıcı tanımlı fonksiyonlar vardır.

Bu kullanıcı tanımlı işlevler, gerektiğinde BAŞLAT işlevinde kullanılır (çağrılır).

Bunun gibi:

 //+------------------------------------------------------------------+
//|                                                    ZZ expert.mq4 |
//|                                        Copyright © 2008, Rid     |
//|                                            Rid                   |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Rid ."
#property link      "Rid "

extern string     _  = "---- ОБЩИЕ ПАРАМЕТРЫ -----" ; 
extern int       MAGIC = 777 ;
extern double    lots = 0.1 ;

extern string     __  = "---- ПАРАМЕТРЫ BUY -----" ; 
extern int       StopLossBuy = 110 ;
extern int       TakeProfitBuy = 55 ;

extern string     ___  = "---- ПАРАМЕТРЫ SELL -----" ; 
extern int       StopLossSell = 110 ;
extern int       TakeProfitSell = 55 ;

extern string    _____ = "Параметры функции ТРЕЙЛИНГ СТОП" ;
extern bool   UseTrailing = true ; //Выключатель трейлинг стопа
extern int    MinProfit = 25 ;    //порог включения трейлин стопа
extern int    TrailingStop = 25 ; // величина трейлинг стопа
extern int    TrailingStep = 5 ; // шаг трейлинг стопа


int ticket ;
bool  gbDisabled  = False ;             // Флаг блокировки советника
bool  gbNoInit    = False ;             // Флаг неудачной инициализации
//-- Подключаемые модули --
#include <stderror.mqh>
#include <stdlib.mqh>

//+------------------------------------------------------------------+
//| initialization function                                          |
//+------------------------------------------------------------------+
int init ( )
  {
gbNoInit = False ;  
if ( ! IsTradeAllowed ( ) ) {
    Message ( "Для нормальной работы советника необходимо \n " +
            "Разрешить советнику торговать" ) ;
    gbNoInit = True ; return ;
  }
  if ( ! IsLibrariesAllowed ( ) ) {
    Message ( "Для нормальной работы советника необходимо \n " +
            "Разрешить импорт из внешних экспертов" ) ;
    gbNoInit = True ; return ;
  }
  }

//жжжжжжжжжжжжж ФУНКЦИЯ СТАРТ жжжжжжжжжжжжжжжжжж+

int start ( )
  {
//Отображаем на графике число открытых позиций
// с задааным магиком "MAGIC"
Comment ( "Число бай позиций = " , NumberOfPositions ( NULL , OP_BUY , MAGIC ) , " \n " ,
"Число селл позиций = " , NumberOfPositions ( NULL , OP_SELL , MAGIC ) , " \n " ,
"Хи-Хи, тра-ля-ля" ) ;

if ( UseTrailing ) TrailPositions ( ) ; // выключатель трейлинг стопа 
  
//-------- открываем позиции 
if ( NumberOfPositions ( NULL , OP_BUY , MAGIC ) < 1 ) { //если нет открытыз бай-поз
//открываем позицию бай:
ticket = OrderSend ( Symbol ( ) , OP_BUY , lots , Ask , 3 , Ask - Point * StopLossBuy ,
Ask + Point * TakeProfitBuy , "Хи-Хи, тра-ля-ля" , MAGIC , 0 , Blue ) ;
                                             } 
//--------------------------------------------------------------
    return ( 0 ) ; //конец функции int start()
  }
//жжжжжжжжжжж КОНЕЦ ФУНКЦИИ СТАРТ жжжжжжжжжжжжжжжж+


//жжжжжжж ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ жжжжжжжжжжжжжжж+
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions ( string sy = "" , int op = - 1 , int mn = - 1 ) {
  int i , k = OrdersTotal ( ) , kp = 0 ;

  if ( sy = = "0" ) sy = Symbol ( ) ;
  for ( i = 0 ; i < k ; i + + )                                    {
    if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )      {
      if ( OrderSymbol ( ) = = sy | | sy = = "" )                   {
        if ( OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_SELL ) {
          if ( op < 0 | | OrderType ( ) = = op )                   {
            if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) kp + + ;
          } } } } }  return ( kp ) ; }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
void TrailPositions ( ) // функция трейлинг стоп
{
  int Orders = OrdersTotal ( ) ;
  for ( int i = 0 ; i < Orders ; i + + ) {
    if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ;
    if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ;    
     if ( OrderType ( ) = = OP_BUY & & OrderMagicNumber ( ) = = MAGIC )  {
      if ( Bid - OrderOpenPrice ( ) > MinProfit * Point ) {
        if ( OrderStopLoss ( ) < Bid - ( TrailingStop + TrailingStep - 1 ) * Point ) {
          OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - TrailingStop * Point ,
                                                     OrderTakeProfit ( ) , 0 , Blue ) ;
        } } }
    if ( OrderType ( ) = = OP_SELL & & OrderMagicNumber ( ) = = MAGIC )  {
      if ( OrderOpenPrice ( ) - Ask > MinProfit * Point ) {
        if ( OrderStopLoss ( ) > Ask + ( TrailingStop + TrailingStep - 1 ) * Point 
                                                       | | OrderStopLoss ( ) = = 0 ) {
          OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + TrailingStop * Point ,
                                                      OrderTakeProfit ( ) , 0 , Blue ) ;
        } } }      } }

//+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message ( string m ) {
  Comment ( m ) ;
  if ( StringLen ( m ) > 0 ) Print ( m ) ;
}        

Umarım artık bu tür sorularınız olmaz!

 

Bir soru daha: Mevcut fiyattan değil, açık bir pozisyondan bekleyen bir emir oluşturmak mümkün müdür?

Şimdiden teşekkürler)

 

Tabii ki mümkün. DC kurallarına göre durma seviyelerine uyulması için bu gecikmenin yalnızca mevcut fiyattan belirli bir mesafede durmasını sağlamak gerekir.

Örneğin, bekleyen pozisyon son pozisyonun açılış fiyatından 100 puan uzaklığa yerleştirilmişse, ancak aynı zamanda mevcut fiyata çok yakınsa, günlük bir emir açmak için 130 hatası verir.

 
rid >> :

Tabii ki mümkün. DC kurallarına göre durma seviyelerine uyulması için bu gecikmenin yalnızca mevcut fiyattan belirli bir mesafede durmasını sağlamak gerekir.

Örneğin, bekleyen pozisyon son pozisyonun açılış fiyatından 100 puan uzaklığa yerleştirilmişse, ancak aynı zamanda mevcut fiyata çok yakınsa, günlük bir emir açmak için 130 hatası verir.

Bir sır değilse nasıl?