Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1633

 
EVGENII SHELIPOV #:

Makar danke für den Tipp

;)
 
//+------------------------------------------------------------------+
//|                                                MA-LONG_SHORT.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"



enum ENUM_DIRECTION{
DIRECTION_BUY = 0, // buy only
DIRECTION_SELL = 1, // sell only
DIRECTION_ANY = 2, // buy & sell
};

input ENUM_DIRECTION inp_direction = DIRECTION_ANY; // разрешенное направление торговли



//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalAMA.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="MA-LONG_SHORT"; // Document name
ulong                    Expert_MagicNumber   =16473;           //
bool                     Expert_EveryTick     =false;           //
//--- inputs for main signal
input int                Signal_ThresholdOpen =10;              // Signal threshold value to open [0...100]
input int                Signal_ThresholdClose=10;              // Signal threshold value to close [0...100]
input double             Signal_PriceLevel    =0.0;             // Price level to execute a deal
input double             Signal_StopLevel     =50.0;            // Stop Loss level (in points)
input double             Signal_TakeLevel     =50.0;            // Take Profit level (in points)
input int                Signal_Expiration    =4;               // Expiration of pending orders (in bars)
input int                Signal_AMA_PeriodMA  =10;              // Adaptive Moving Average(10,...) Period of averaging
input int                Signal_AMA_PeriodFast=2;               // Adaptive Moving Average(10,...) Period of fast EMA
input int                Signal_AMA_PeriodSlow=30;              // Adaptive Moving Average(10,...) Period of slow EMA
input int                Signal_AMA_Shift     =0;               // Adaptive Moving Average(10,...) Time shift
input ENUM_APPLIED_PRICE Signal_AMA_Applied   =PRICE_CLOSE;     // Adaptive Moving Average(10,...) Prices series
input double             Signal_AMA_Weight    =1.0;             // Adaptive Moving Average(10,...) Weight [0...1.0]
//--- inputs for money
input double             Money_FixLot_Percent =10.0;            // Percent
input double             Money_FixLot_Lots    =0.01;            // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+


int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalAMA
   CSignalAMA *filter0=new CSignalAMA;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodMA(Signal_AMA_PeriodMA);
   filter0.PeriodFast(Signal_AMA_PeriodFast);
   filter0.PeriodSlow(Signal_AMA_PeriodSlow);
   filter0.Shift(Signal_AMA_Shift);
   filter0.Applied(Signal_AMA_Applied);
   filter0.Weight(Signal_AMA_Weight);
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
   money.Percent(Money_FixLot_Percent);
   money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
 
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
 
amsgif80 #:

Ich sehe hier keine Handelsfunktionen...

Lesen Sie dies und laden Sie die Vorlage unten herunter

 
MakarFX #:
Ich sehe hier keine Handelsfunktionen...

Dieser EA wurde mit dem mt5-Editor erstellt. Ich weiß also nicht, wie man hier Kaufen/Verkaufen hinzufügen kann. Um genauer zu sein, habe ich eine Kopfzeile am Anfang des Codes platziert, aber dann weiß ich nicht, was ich damit machen soll.

 
amsgif80 #:

Dieser EA wurde mit dem mt5-Editor erstellt. Ich weiß also nicht, wie man hier Kaufen/Verkaufen hinzufügen kann. Um genauer zu sein, habe ich eine Kopfzeile am Anfang des Codes platziert, aber dann weiß ich nicht, was ich damit machen soll.

Wo soll nun eingefügt werden:if(inp_direction!=DIRECTION_SELL)if(inp_direction!=DIRECTION_BUY
 
amsgif80 #:
Wo soll nun eingefügt werden:if(inp_direction!=DIRECTION_SELL)if(inp_direction!=DIRECTION_BUY

Lesen Sie dies und laden Sie die Vorlage unten herunter

 
MakarFX #:

Lesen Sie dies und laden Sie die Vorlage unten herunter

Gut, danke!
 
Können Sie mir sagen, wie ich den minimalen OrderOpenPrice aus dem OP_SELL-Raster ermitteln kann?
 
makssub den minimalen OrderOpenPrice aus dem OP_SELL-Raster ermitteln kann.

sowie die Entfernung, sondern vergleichen Sie den Eröffnungspreis.

 
Taras Slobodyanik #:

sowie die Entfernung, sondern vergleichen Sie den Eröffnungspreis.

Schreiben Sie ein Beispiel, denn ich bin schon ein wenig verwirrt. Wenn es nicht zu viel Mühe macht. Danke