Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 748

 
AlexeyVik:


Und dieser Code

es ist besser, in init() zu schreiben, und zwar nicht so

und dann in start()

Ich benötige einen Kaufstopp, gefolgt von einem Fraktal, das dem Preis hinterherläuft, und einen Verkaufsstopp mit demselben Verfahren.
 
xant:
Ich ziehe die Frage zurück, ich habe es selbst herausgefunden.
Es ist keine gute Idee, zu dekompilieren. Ich rate dazu, den Code komplett zu überarbeiten
 
Petiyashaket:
Ich benötige einen Kaufstopp, der durch Preisfraktale nachgezogen (modifiziert) wird, bis er auslöst, und einen Verkaufsstopp auf die gleiche Weise.

Die Frage in Ihrem Code, die rot hervorgehoben ist, lautet also

if(Up>0&&Down==0&&Volume[0]<2)     //если верхний фрактал есть а нижнего нету и прошло не больше 2х тиков то:
    {
    if((High[3]+5*Point-Ask)/Point>MarketInfo(Symbol(),MODE_STOPLEVEL)) //если расстояние 0 бара от хая фрактала позволяет то:
    OrderSend(Symbol(),OP_BUYSTOP,Lot,High[3]+5*Point,20,High[3]-sl,High[3]+tp,NULL,Magic,0,Green);//выставляем отложенный на покупку
    else {BS=High[3]+5*Point; Print("Виртуальный BS:",BS);} // а ели нет то запоминаем(позже будет добавлен вход с рынка)
        { // К чему относится эта скобка???
        for (int pos=0;pos==OrdersTotal();pos++)
        OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),Up+5*Point,High[3]-sl,High[3]+tp,0,CLR_NONE);
          }
        } // это пара к той...
     
       }  

Sie haben immer noch nicht geantwortet. Ich weiß nicht, was ich damit anfangen soll, aber das Ergebnis der Codeausführung wird anders sein.

 
AlexeyVik:

Die Frage in Ihrem Code ist also rot hervorgehoben.

Sie haben immer noch nicht geantwortet. Das Ergebnis der Code-Ausführung wird daher anders ausfallen.

Warum verwenden SieVolume[0]<2 in der Bedingung?

Manchmal gibt es eine ganze Reihe von ihnen auf einmal. Und bei dieser Leiste wird die Bedingung nicht mehr funktionieren.

 
Vinin:

Warum verwenden SieVolume[0]<2 in der Bedingung?

Manchmal gibt es mehrere von ihnen auf einmal. Und bei dieser Leiste wird die Bedingung nicht mehr funktionieren

Victor, diese Frage ist nicht für mich bestimmt. Ich verwende diese Funktion.

bool NewBar()
{
   static datetime lastbar = iTime(_Symbol, PERIOD_H1, 0); // Период можно менять по желанию
   datetime curbar = iTime(_Symbol, PERIOD_H1, 0);         // и будет отсчитывать новый бар заданного периода на любом ТФ
   if(lastbar != curbar)
    {
     lastbar = curbar;
     return (true);
    }
   else return(false);
}//******************************************************************|

Ich habe einen Teil des Codes kopiert, um eine Frage zu Klammern zu stellen.

 
Vinin:

Warum verwenden SieVolume[0]<2 in der Bedingung?

Manchmal gibt es mehrere davon auf einmal. Und bei dieser Leiste wird die Bedingung nicht mehr funktionieren

Das ist, was Oleg Remizov auf YouTube lehrt. Diese Bedingung begrenzt den Handel auf die Nachrichten und das Auffangen von Verlusten :)
 
Petiyashaket:
Dies ist, was Oleg Remizov lehrt auf YouTube, diese Bedingung schränkt den Handel auf die Nachrichten und den Fang von Elchen :)
Ich habe nichts über Remizov zu sagen. Aber seien Sie nicht beleidigt, wenn Ihr Code keine Balken enthält. Gut, wenn Sie einen Minutencode haben (in welchem Zeitrahmen, natürlich), aber wenn Sie auf eine Stunde oder mehr laufen werden - es wird nur schade für Sie sein.
 
AlexeyVik:

Die Frage in Ihrem Code ist also rot hervorgehoben.

ist nie beantwortet worden. Dadurch wird auch das Ergebnis der Codeausführung anders ausfallen.

Ich habe auf verschiedene Weise mit Klammern experimentiert, sie entfernt und hinzugefügt, das Ergebnis ist das gleiche
 
Petiyashaket:
Ich habe mit den Klammern auf verschiedene Weise experimentiert, ich habe sie entfernt und hinzugefügt, das Ergebnis ist das gleiche

Sie brauchen nicht zu experimentieren, Sie müssen nur die Bedeutung dieser Klammern verstehen und wissen, wie man sie anwendet. Es steht in der Dokumentation, ich werde keinen Vortrag darüber lesen.

if(Up>0&&Down==0&&Volume[0]<2)     //если верхний фрактал есть а нижнего нету и прошло не больше 2х тиков то:
    {
    if((High[3]+5*Point-Ask)/Point>MarketInfo(Symbol(),MODE_STOPLEVEL)) //если расстояние 0 бара от хая фрактала позволяет то:
    OrderSend(Symbol(),OP_BUYSTOP,Lot,High[3]+5*Point,20,High[3]-sl,High[3]+tp,NULL,Magic,0,Green);//выставляем отложенный на покупку
    else {BS=High[3]+5*Point; Print("Виртуальный BS:",BS);} // а ели нет то запоминаем(позже будет добавлен вход с рынка)

        for (int pos=0;pos==OrdersTotal();pos++)
        { // наверное сюда её надо
        OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),Up+5*Point,High[3]-sl,High[3]+tp,0,CLR_NONE);
          }
        } // это пара к той...
     
       }  
Dies ist jedoch nur ein Teil des Codes. Ein ähnliches Problem stellt sich im weiteren Verlauf.
 
//+------------------------------------------------------------------+
//|                                                   Strategy 3.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+

#property copyright ""
#property link      ""
#include <Library1.mqh>
extern int Magic=111;
extern int TP=20;
extern int SL=30;
extern int Trall_dist=10;
extern int Shag=10;
extern bool Isp_shag=false;
extern bool Isp_bezubitok=false;
extern double Lot=0.1;
double SS=0,BS=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  double tp,sl;
  if(Digits==3||Digits==5) {tp=TP*10*Point;sl=SL*10*Point;}
  else if(Digits==2||Digits==4) {tp=TP*Point;sl=SL*Point;}
  double Up=iFractals(Symbol(),0,MODE_UPPER,3);
  double Down=iFractals(Symbol(),0,MODE_LOWER,3);
//----
  if(Up>0&&Down==0&&Volume[0]<2)
    {
    if((High[3]+5*Point-Ask)/Point>MarketInfo(Symbol(),MODE_STOPLEVEL))
    OrderSend(Symbol(),OP_BUYSTOP,Lot,High[3]+5*Point,20,High[3]-sl,High[3]+tp,NULL,Magic,0,Green);
 //----   
    for (int pos=0;pos==OrdersTotal();pos++)
        {
        OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),High[3]+5*Point,High[3]-sl,High[3]+tp,0,CLR_NONE);
          }
        } 
    } 
  else if(Up==0&&Down>0&&Volume[0]<2)
    {
    if((Bid-Low[3]-5*Point)/Point>MarketInfo(Symbol(),MODE_STOPLEVEL))
    OrderSend(Symbol(),OP_SELLSTOP,Lot,Low[3]-5*Point,20,Low[3]+sl,Low[3]-tp,NULL,Magic,0,Red);
    for (pos=0;pos==OrdersTotal();pos++)
        {
        OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()&&OrderType()==OP_SELLSTOP)
          {
          OrderModify(OrderTicket(),Low[3]-5*Point,Low[3]+sl,Low[3]-tp,0,CLR_NONE);
          }      
        }     
    }    
   
            
    if(OrdersTotal()>0)
    Trailing_stop(Magic,Symbol(),Trall_dist,Shag,Isp_shag,Isp_bezubitok);
    return(0);
  }
//+------------------------------------------------------------------+
Wenn Sie es mir in einer Codezeile und mit Kommentaren erklären, wie in meinem vorherigen Code, wäre ich Ihnen sehr dankbar.