[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 157

 

Freunde, könnt ihr mir sagen, was ich tun muss, um einen 5-stelligen Preis auszugeben? Ich schreibe zum Beispiel einen Fall wie diesen:

int Quant_Bars=15;

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

double Maximum=High[Ind_max];

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

Und es druckt den Preis mit vier Dezimalstellen aus.

Vielen Dank im Voraus))

 
rid >> :

Und an welcher Stelle des Codes setzen Sie diese Funktion ein?

Ich stehe noch am Anfang der Entwicklung meines Codes... Man kann es also nirgendwo unterbringen....

Können Sie mir auf kindliche Weise erklären, wie man die Anzahl der Aufträge mit der magischen Zahl berechnet?))


 
Alex5757000 писал(а) >>

Freunde, könnt ihr mir sagen, was ich tun muss, um einen 5-stelligen Preis auszugeben? Ich schreibe zum Beispiel einen Fall wie diesen:

int Quant_Bars=15;

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

double Maximum=High[Ind_max];

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

Und es druckt den Preis mit vier Dezimalstellen aus.

Vielen Dank im Voraus))

Haben Sie DoubleToStr() ausprobiert?

 
ArtY0m писал(а) >>

Ich stehe noch am Anfang der Entwicklung meines Codes... Man kann es also nirgendwo unterbringen....

Können Sie mir auf kindliche Weise erklären, wie man die Anzahl der Aufträge mit der magischen Zahl berechnet?))


Am einfachsten ist es, wenn Sie hier nachsehen: https://book.mql4.com/ru/

 

Bitte helfen Sie mir. Ich verstehe gar nichts mehr.

Wenn während der visuellen Prüfung der EA 1.mq4 (beigefügt) Ich habe eine 3-cci Indikator (beigefügt) auf dem Chart, dann, wie es scheint, mit genau den gleichen Parametern der berechneten cci Indikator Signale und tatsächlichen cci (Objekt Text in der oberen rechten Ecke) nicht übereinstimmen.

WARUM?

Und aus irgendeinem Grund funktionieren die Warnmeldungen in diesem Indikator nicht.

Dateien:
pack_1.rar  2 kb
 
Ich kann keinen Hinweis auf einen Indikator finden, der eine Kerze mit hohem Zeitrahmen auf einem Chart mit niedrigem Zeitrahmen zeichnet (d. h. beide Kerzen gleichzeitig). Wer kann mir das sagen?
 
ArtY0m >> :

Ich stehe noch am Anfang der Entwicklung meines Codes... Man kann es also nirgendwo unterbringen....

Können Sie mir auf kindliche Weise erklären, wie man die Anzahl der Aufträge mit der magischen Zahl berechnet?)


Ein Expert Advisor (in seiner einfachsten Form) besteht aus mehreren Teilen.

Zunächst werden die externen Parameter und globalen Variablen gesetzt.

Danach kommen in der Regel die Funktionen zum Initialisieren und Deinitialisieren.

Danach wird die START-Funktion ausgeführt, in der der Hauptarbeitsalgorithmus des Expert Advisors festgelegt wird.

Zweitens kommen die benutzerdefinierten Hilfsfunktionen hinzu.

Diese benutzerdefinierten Funktionen werden je nach Bedarf in der Funktion START verwendet (aufgerufen).

Hier ist etwas in der Art:

//+------------------------------------------------------------------+
//|                                                    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);
}        

Ich hoffe, Sie haben jetzt keine solchen Fragen mehr!

 

Eine weitere Frage: Ist es möglich, eine Pending Order von einer offenen Position aus zu platzieren, nicht vom aktuellen Kurs aus?

Vielen Dank im Voraus)

 

Natürlich können Sie das. Wir müssen nur darauf achten, dass dieser schwebende Auftrag in einem solchen Abstand zum aktuellen Kurs platziert wird, dass die von den Maklerunternehmen festgelegten Stop-Levels eingehalten werden.

Wenn zum Beispiel ein schwebender Auftrag 100 Pips vom letzten Eröffnungskurs entfernt platziert wird, aber zu nahe am aktuellen Kurs liegt, gibt das Protokoll einen Fehler 130 zurück, um den Auftrag zu öffnen.

 
rid >> :

Natürlich können Sie das. Wir müssen nur darauf achten, dass dieser schwebende Auftrag in einem solchen Abstand zum aktuellen Kurs platziert wird, dass die von den Maklerunternehmen festgelegten Stop-Levels eingehalten werden.

Wenn der Auftrag beispielsweise 100 Punkte vom Eröffnungskurs der letzten Position entfernt ist, aber zu nahe am aktuellen Kurs liegt, gibt das Protokoll einen Fehler 130 zurück, um den Auftrag zu öffnen.

Wie, wenn es kein Geheimnis ist?

Grund der Beschwerde: