Einen wirksamen Ratgeber schreiben - Seite 6

 
Vladimir Baskakov #:
Du weißt bereits, dass es 0 sein wird, sonst hättest du diesen Thread nicht eröffnet.

Gibt es keinen anderen Grund?

Kurzum, ich habe die Nase voll von diesem ganzen Geschwätz. Wenn Sie den Dialog außerhalb des EA-Threads fortsetzen, werde ich Ihre Beiträge ignorieren.

Ihre Vorhersagen sind uninteressant, weil sie bereits der Effektivität des Handelsroboters widersprechen. Mein Video zeigt Ihnen, wie Sie die Trendlinie verwalten können, um einen Gewinn zu erzielen. Wenn Sie es nicht lernen können, werden Sie es auch nicht anwenden können. Es ist wie das Spielen eines Musikinstruments. Ich, als Meister, behaupte, dass das Instrument gut ist. Ich weiß es, denn ich programmiere seit über 15 Jahren für Forex. Ich habe Ihnen das Werkzeug gegeben. Es ist keine Tatsache, dass Sie es meisterhaft anwenden können.

Und noch etwas: Das Werkzeug, das ich in dem Video verwendet habe, heißt nicht Strahl, sondern Trendlinie. Der Strahl ist das PARAMETER dieses Werkzeugs, das Sie nach Belieben ausschalten können.

Das war's dann auch schon. Ich möchte keine unbegründeten Vorhersagen mehr treffen.

 
Vitaly Murlenko #:

Gibt es keinen anderen Grund?

Kurzum, ich habe die Nase voll von diesem ganzen Geschwätz. Wenn Sie weiterhin außerhalb des EA-Themas reden, werde ich Ihre Beiträge ignorieren.

Ihre Vorhersagen sind uninteressant, weil sie bereits der Effektivität des Handelsroboters widersprechen. Mein Video zeigt Ihnen, wie Sie die Trendlinie verwalten können, um einen Gewinn zu erzielen. Wenn Sie es nicht lernen können, werden Sie es auch nicht anwenden können. Es ist wie das Spielen eines Musikinstruments. Ich, als Meister, behaupte, dass das Instrument gut ist. Ich weiß es, denn ich programmiere seit über 15 Jahren für Forex. Ich habe Ihnen das Werkzeug gegeben. Es ist keine Tatsache, dass Sie es meisterhaft anwenden können.

Und noch etwas: Das Werkzeug, das ich in dem Video verwendet habe, heißt nicht Strahl, sondern Trendlinie. Der Strahl ist der PARAMETER dieses Tools, den Sie auf Wunsch ausschalten können.

Das war's dann auch schon. Ich möchte keine unbegründeten Vorhersagen mehr treffen.

Wo angeben?
Der Vergleich der Anzahl roter und blauer Kerzen ist nicht die Definition eines Trends.
 
Vladimir Baskakov #:
Wo angeben?
Der Vergleich der Anzahl roter und blauer Kerzen ist keine Trenderkennung.

OK, aber ich werde nur ein Zwischenergebnis unter realen Bedingungen zeigen. Hier ist ein Bildschirmfoto:

Das Geld ist gestern um 15 Uhr eingegangen. Es gab keine (Sie müssen mir hier glauben).

Hier ist der Zustand:

8

9

10

11

 
Hilft dieser Zustand Ihrer Analytik?
 
Vitaly Murlenko #:
Hilft dieser Zustand bei Ihrer Analyse?
Hier ist der Staat.
Übrigens, warum sollte man sich die Mühe machen, nach einem Trend zu suchen, wenn die Wahrscheinlichkeit, dass er sich fortsetzt, 50/50 beträgt?
 
Vitaly Murlenko #:

Dem Beitrag beigefügt ist der Expert Advisor (Datei Binarnic_1.0.mq4) und das Skript, das ich im Video verwendet habe (Datei Script_0.mq4).

Um Missverständnisse zu vermeiden, sehen Sie sich zuerst das Video an. Ich habe mein Video mit Kopfhörern angesehen - der Ton scheint in Ordnung zu sein.

Ich wollte es auf YouTube verwenden, aber Google hatte dort etwas mit der Sicherheit verwechselt, und ich konnte es nicht einmal auf meinem Handy verstehen. Wie auch immer, ich habe es auf myl-ru in die Cloud hochgeladen. Laden Sie es einfach herunter, denn der Viewer dieses Servers leidet eindeutig unter der Qualität. Das Dateiformat ist mp4. Die Datei ist 252 Megabyte groß. Hier ist ein Link zum Herunterladen:https://cloud.mail.ru/public/Ewoq/ymNxHFJ2Z

Guten Morgen an alle und gute Laune!

Vitaliy, planen Sie, den Code Ihres Expert Advisors nur für MT4 zu schreiben oder wird es eine Version für MT5 geben? Ich weiß nicht, über 4, weil ich habe einen kurzen Kurs der Selbststudium der MQL5 Programmiersprache, das ist, warum ich kaum etwas auf den Code von Ihrem EA hinzufügen können. Schade!

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin #:

Guten Morgen allerseits und gute Laune!

Vitaliy, planen Sie, den Code Ihres Expert Advisors nur für MT4 zu schreiben oder wird es eine Version für MT5 geben? Ich weiß nicht, über 4, weil ich habe einen kurzen Kurs der Selbststudium der MQL5 Programmiersprache, das ist, warum ich kaum in der Lage sein, etwas zu Ihrem EA-Code hinzufügen. Schade!

Mit freundlichen Grüßen, Vladimir.

MQL4 unterscheidet sich nicht von MQL5. Der einzige Unterschied ist der Zugang zu Daten und Handelsfunktionen. All dies wird in Klassen mit einer gemeinsamen virtuellen Schnittstelle "verpackt" - und voila, wir erhalten einen portablen Code, der in beiden Fällen ohne Änderungen kompiliert werden kann.

 
Georgiy Merts #:

MQL4 unterscheidet sich nicht von MQL5. Der einzige Unterschied ist der Zugang zu Daten und Handelsfunktionen. All dies wird in Klassen mit einer gemeinsamen virtuellen Schnittstelle "verpackt" - und voilà, Sie erhalten einen portablen Code, der ohne Änderungen dort und dort kompiliert werden kann.

https://www.mql5.com/ru/docs/basis/preprosessor/conditional_compilation
 
Georgiy Merts #:

Der einzige Unterschied besteht in den Funktionen für den Datenzugriff und den Handel.


Und nicht nur das.

 

Ganz genau.

Einfach durch die Verwendung bedingter Kompilierungsanweisungen. Alle diese Direktiven funktionieren innerhalb der echten Klassen. Wir entwickeln eine virtuelle universelle Schnittstelle für Handelsaktionen und trennen in Implementierungsklassen MQL4-MQL5-Zweige durch bedingte Kompilierung. Wir erstellen dann einfach ein Objekt, mit dem wir handeln und auf das wir über die virtuelle Schnittstelle zugreifen können. Und im Allgemeinen vergessen wir alle Arten von Unterschieden zwischen den Plattformen.

Sagen wir, hier ist meine virtuelle Schnittstelle des Handelsprozessors:

// СTradeProcessorI - интерфейс торгового процессора

#include <MyLib\Common\MyObject.mqh>
#include <MyLib\Common\CurSymEnum.mq5>

class CTradePosComponentI;
class COrderInfoCore;

class CTradeProcessorI : public CMyObject
{
public:
   void CTradeProcessorI() {    SetMyObjectType(MOT_TRADE_PROCESSOR_I); };
   virtual void ~CTradeProcessorI() {};
   
   // Настроечный интерфейс
   virtual void SetSlippage(uint uiSlippage) = 0;
   
   // Торговый интерфейс
   // Все функции возвращают код возврата торгового сервера
   virtual int Buy(long & lTicket,ECurrencySymbol csSymbol,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0;               // Всегда по цене Ask, если успешно - возвращается lTicket
   virtual int Sell(long & lTicket,ECurrencySymbol csSymbol,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0;              // Всегда по цене Bid, если успешно - возвращается lTicket  

   virtual int ModifyTPSL(CTradePosComponentI* ptpcComponent,double dTP=0,double dSL=0) = 0;       
   virtual int ModifyTPSL(long lTPCTicket,double dTP=0,double dSL=0) = 0;       

   virtual int CloseTradeComponent(CTradePosComponentI* ptpcComponent,double dCloseVolume=EMPTY_VALUE) = 0;              // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   virtual int CloseTradeComponent(long lTPCTicket,double dCloseVolume=EMPTY_VALUE) = 0;              // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   
   virtual int PendingSet(long & lTicket,ECurrencySymbol csSymbol,ENUM_ORDER_TYPE otOrderType,double dSetPrice,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0; // если успешно - возвращается lTicket
   virtual int PendingDelete(long lTicket) = 0; 
   virtual int PendingDelete(COrderInfoCore* poiOrder) = 0; 
   
   virtual int PendingModify(long lTicket,double dSetPrice,double dTP=0,double dSL=0) = 0;       
   virtual int PendingModify(COrderInfoCore* poiOrder,double dSetPrice,double dTP=0,double dSL=0) = 0;       
   
   // Проверка кода возврата
   virtual bool TradeOperationWasSuccessful(int iTradeResCode) const = 0;
   
   // Если функция возвращает true, то при возникновении пользовательских ошибок (iTradeResCode > ERR_USER_ERROR_FIRST) советник прекратит работу
   // В случае false - работа будет продолжена
   virtual bool IsUserErrorsFalal() const = 0; 

};


Alle Funktionen sind virtuell und völlig plattformunabhängig. Wir haben ein plattformunabhängiges Konzept einer "Handelskomponente" eingeführt, die entweder eine einzelne MT4-Order oder eine offene Position auf einem Symbol in MT5 darstellt. Und genau mit dieser Art von Handelskomponente arbeiten wir.

Die echte Klasse, die diese Schnittstelle implementiert, sieht wie folgt aus:

// СTradeProcessor - переносимый класс торгового процессора
// Именно этот класс необходимо использовать для торговли. 
// Класс реализует интерфейс CTradeProcessorI

#ifdef __MQL5__
#include <MyLib\Trade\MT5TradeProcessor.mq5>
#else // __MQL5__
#include <MyLib\Trade\MT4TradeProcessor.mq5>
#endif //__MQL5__

#ifdef __MQL5__
class CTradeProcessor : public CMT5TradeProcessor
#else // __MQL5__
class CTradeProcessor : public CMT4TradeProcessor
#endif //__MQL5__

{
public:
   void CTradeProcessor(uint uiSlippage = DEFAULT_TRADE_POINT_SLIPPAGE);
   void ~CTradeProcessor() {};
};


Die gesamte Implementierung findet in den plattformabhängigen Klassen CMT5TradeProcessor und CMT4TradeProcessor statt.