Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Metatrader 4 Bugs (http://www.expert-advisor.com/forum/showthread.php?t=6573)

MA-EA 09.01.20 11:37

Metatrader 4 Bugs
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.

Der Stochastic Indikator scheint nicht der Einzige zu sein, der im MT4 falsch funktioniert. Wie man auf dem Bild sieht, hat der EA um 4:02 einen Sell geöffnet, obwohl der RVI gar nicht das Signal dafür gegeben hat. Das letzte Signal für einen Sell war um 0:00. Da hat er um 1:00 wie er es sollte, auch Welche aufgemacht. Aber um 4 war der RVI-Wert überm RVI-Signal-Wert. Da hätte er gar keinen Sell öffnen dürfen:

https://charts.mql5.com/23/227/usdsg...trades-plc.png

Der EA ist im Anhang. Sollte doch was an meinem Code nicht stimmen, könnt Ihr es mir sehr gerne erklären. ;) Aber so wie es aussieht, funktionieren einige Indikatoren im MT4 dann und wann nicht korrekt. :eek:

MA-EA 11.01.20 10:37

Liste der Anhänge anzeigen (Anzahl: 1)
Hat Niemand ne Idee, warum der EA nen Sell aufmacht, obwohl die Bedingungen dafür nicht erfüllt sind?
Code:

extern int RVI_Period=40;
Code:

double RVI_Ma_B1=iRVI(Symbol(),Timeframe,RVI_Period,MODE_MAIN,1);
double RVI_Ma_B0=iRVI(Symbol(),Timeframe,RVI_Period,MODE_MAIN,0);

double RVI_Si_B1=iRVI(Symbol(),Timeframe,RVI_Period,MODE_SIGNAL,1);
double RVI_Si_B0=iRVI(Symbol(),Timeframe,RVI_Period,MODE_SIGNAL,0);

Code:

if(open_Buy==true&&  RSI_B1>RSI_IL_1 && RSI_B0>RSI_B1 && RVI_Ma_B1>RVI_Si_B1 && RVI_Ma_B0>RVI_Ma_B1 ){
 
if(IsTradeAllowed()==true)Ti=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_SL,Buy_TP,NULL,Buy_MN,0,Beige);




  ...


if(open_Sell==true&&  RSI_B1<RSI_IL_2 && RSI_B0<RSI_B1  &&RVI_Ma_B1<RVI_Si_B1 && RVI_Ma_B0<RVI_Ma_B1 ){

if(IsTradeAllowed()==true)Ti=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_SL,Sel_TP,NULL,Sell_MN,0,Blue);
 

...


Ca$hDigger 22.01.20 15:02

Der Effekt ist logisch denn ein Indikator der auf den close[0] berechnet wird, "repaintet" sozusagen da close[0] dem sich veränderndem Bid entspricht bis eine neue Kerze kommt. Erst nach der folgenden Kerze ist der Wert fixiert und entspricht dem was man auf dem Chart im nachhinein sieht. Während der Kerze kann der Indi aber die Signale auslösen da close[0] sich währenddessen dem veränderndem Bid entspricht. Was passieren kann ist sozusagen im nachhinein nicht mehr sichbar.

close[0] -> Repaint da == Bid
open[0] -> kein Repaint

close[1] -> kein Repaint
open[1] -> kein Repaint

Um diesen Effekt zu vermeiden müsste man jeweils um eins nach hinten shiften oder auf den open-Kurs berechnen.

Gruß

MA-EA 22.01.20 16:45

Das Problem haben also nur Indikatoren, wenn sie auf Bar 0 angesetzt werden?

Wie ist das bei nem Vergleich mit Open Bar 0 und Bid/Ask?

Ca$hDigger 22.01.20 23:54

Zitat:

Zitat von MA-EA (Beitrag 43243)
Das Problem haben also nur Indikatoren, wenn sie auf Bar 0 angesetzt werden?

Ja wenn Close[0] bei der Berechnung eines Indis verarbeitet wird, verändert sich jeden Tick der Output des Indis bis der Bar abgeschlossen wurde da es dem laufenden Bid-Kurs entspricht. Auch High[0] und Low[0] kann sich bis zum Ende des Bars immer wieder ändern.

Zitat:

Zitat von MA-EA (Beitrag 43243)
Wie ist das bei nem Vergleich mit Open Bar 0 und Bid/Ask?

Open[0] hat als einziger kein "Repaint" da sich dieser Wert nach dem ersten Tick nie mehr ändert. Bid/Ask verändert sich wiederum natürlich bei jedem Tick.

Ich würde das Ganze aber nicht als Problem beschreiben sondern als Effekt der eben bei der Zeitchartgenerierung auftritt. Eine Zeit-Kerze/Bar wird nun mal angezeigt bevor der nächste auftritt daher kann sich bis dahin close/high/low immer wieder verändern.

MA-EA 08.02.20 05:34

Danke. Die Vergleiche von irgendwelchen Bar 0 Geschichten waren das Problem. ;) :cool:

Wie ist das, wenn der EA z.B. RSI Bar 1 und Bar 2 vergleicht? Ob RSI Bar 1 </> RSI Bar 2 ist?

Ca$hDigger 08.02.20 14:34

Ja wie oben schon beschrieben, wenn [1] und [2] verglichen werden, sind diese Werte bei OHLC immer fix. Das nachträgliche Sehen des Signals auf dem Chart ist dann möglich.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:28 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum