Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3947
Beiträge: 37722
Benutzer: 6.242
Aktive Benutzer: 419
Links: 80
Wir begrüßen unseren neuesten Benutzer: Marcel83
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- Marcel83
vor 5 Tagen
- Megaule
vor 5 Tagen
- faanx
vor 5 Tagen
- baldwinlol
vor 6 Tagen
- adaba

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 46
Gesamt: 47
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 19
mante befindet sich auf einem aufstrebenden Ast
Standard ich habe Zufallszahl Problem

hallo - ich bitte um eure Hilfe :-)

wie kann ich folgendes Problem lösen

ein Zufallsgenerator erzeugt Zahlen von 1 bis 10

dieser Generator liefert jedoch öfters die gleiche Zahl in Serie

zb:

4,7,9,7,7,7,7,8

wie kann ich aus dieser Reihenfolge 4,7,9,7,8..... machen

der Code soll sich die vorangehende Zahl merken und nur einen Wert liefern wenn die neue zahl unterschiedlich ist

geht sowas nur mit einem Array?

lg mante
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 233
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Es reicht eine Variable in der die letzte Zufallszahl gespeichert wird.
Eine Endlosschleife generiert dann solange Zufallszahlen bis die Zufallszahl ungleich der gespeicherten letzten gültigen Zufallszahl ist. Ist die Bedingung erfüllt bricht die Schleife ab und man erhält die nächste gültige Zufallszahl die sich von der vorigen unterscheidet.

C$D
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 19
mante befindet sich auf einem aufstrebenden Ast
Standard keine Rückmeldung

hallo cash digger - danke für deine Antwort

ich hab das so programmiert

int Wert(int Zufallszahl)

{
int x = Zufallszahl;

while(x=x)

{

Print(" geich");

}
Print ("Zahl hat sich geändert");

}

der mt4 war damit ein wenig überfordert - es kam die Meldung keine Rückmeldung :-)

hab ich da was falsch programmiert?

lg mante
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 233
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Ich würde es so angehen:

Code:
int lastRand = 0; // global

int getRand()
{
   int Rand;
   while(1)
   {
      Rand = MathRand();
      if(Rand != lastRand)
      {
         lastRand = Rand;
         return(Rand);
      }
   }
}
Im Programm dann einfach per getRand() den Wert holen.

int lastRand sollte ausserhalb der Funktion liegen damit der Wert am leben bleibt.

MathRand() müsste natürlich noch angepasst werden um den gewünschten Wertebereich zu erhalten.
siehe auch:
https://docs.mql4.com/math/mathrand
https://www.mql5.com/en/forum/125208

Grüße
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Noch ne kleine Anmerkung meinerseits...

Zitat:
Zitat von mante Beitrag anzeigen
ich hab das so programmiert

int Wert(int Zufallszahl)

{
int x = Zufallszahl;

while(x=x)

{

Print(" geich");

}
Print ("Zahl hat sich geändert");

}

der mt4 war damit ein wenig überfordert - es kam die Meldung keine Rückmeldung :-)

hab ich da was falsch programmiert?

lg mante
Etwas deutlicher...
Code:
int Wert(int Zufallszahl)
{
   int x = Zufallszahl;
   
   while(x=x)
   {
      Print(" geich");
   }
   Print ("Zahl hat sich geändert");
}
Wenn das wirklich der ganze Code ist, so ist er natürlich falsch.
  • Wo wird da eine Zufallszahl generiert? Vor dem Aufruf von "Wert()"?
  • Deine Bedingung "while(x=x)" führt eine Zuweisung durch (Ein "=")!
  • Aber egal ob jetzt mit einem oder zwei Gleichheitszeichen, deine Bedingung führt zu einer Endlosschleife, die du
    nirgendwo im Code abbrichst.
  • Deine beiden Prints würden in einem "if-else" Sinn machen. Aber so wie du es stehen hast, wird Print 2 immer
    unabhängig des ersten Print ausgeführt, welches wiederum IMMER in deiner Endlosschleife ausgeführt wird, die wiederum
    dafür verantwortlich ist, das Print 2 eben NIE ausgeführt wird.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 19
mante befindet sich auf einem aufstrebenden Ast
Standard Danke

vielen Dank cash digger und next user!!!!

die Zufalls zahl kommt aus einer anderen Funktion und wird mit

int Wert(int Zufallszahl)

an diese Schleife übergeben. Eigentlich ist es ein Wert der in einem Chart entsteht. Ich möchte mit dem Code den neuen Wert an eine andere Funktion übergeben.

etwa so

4,4,4,4,4, Schleife macht nix
4,4,4,4,6 Schleife bricht ab übergibt (6) an andere Funktion

6,6,6,6,6,6,6,9 Schleife übergibt (9) an andere Funktion

solange die gleiche Zahl kommt dreht sie sich im Kreis


für euch ist das sicher lächerlich - aber ich programmiere erst seit sehr kurzer Zeit

lg mante
Mit Zitat antworten
  #7 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 54
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mante Beitrag anzeigen
ein Zufallsgenerator erzeugt Zahlen von 1 bis 10
dieser Generator liefert jedoch öfters die gleiche Zahl in Serie
zb: 4,7,9,7,7,7,7,8
Mal eine Frage, wozu brauchst Du einen Zufallsgenerator, wenn Du danach das was er generiert wieder zunichte machst? Das ist doch gerade Sinn und Zweck des Generators, daß er eben auch x-mal hintereinander dieselbe Zahl liefern kann. -grübel-
AVT
__________________
heute schon gelacht?
Mit Zitat antworten
  #8 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 19
mante befindet sich auf einem aufstrebenden Ast
Standard diese Zahl

entsteht im Chart - deshalb ist sie zufällig - der Code soll erst fortgesetzt werden wenn sie sich ändert :-)

sie letzter Eintrag von mir

lg mante
Mit Zitat antworten
  #9 (permalink)  
Alt vor 4 Wochen
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mante Beitrag anzeigen
4,4,4,4,4, Schleife macht nix
4,4,4,4,6 Schleife bricht ab übergibt (6) an andere Funktion

6,6,6,6,6,6,6,9 Schleife übergibt (9) an andere Funktion

solange die gleiche Zahl kommt dreht sie sich im Kreis
Und zwar im wahrsten Sinne des Wortes.
In deinem bisherigen Code hat die Schleife ja nichts gemacht und wird auch nicht abgebrochen.
Sie dreht sich also wriklich im Kreis.
Mit Zitat antworten
  #10 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 19
mante befindet sich auf einem aufstrebenden Ast
Standard hat jemand eine lösung für mich :)

#6 (permalink) Bewerten Sie diesen Beitrag von mante Beitrag melden
Alt vor 6 Stunden
mante mante ist gerade online
Neues Mitglied

Registriert seit: Mar 2018
Beiträge: 4
mante befindet sich auf einem aufstrebenden Ast
Standard Danke
vielen Dank cash digger und next user!!!!

die Zufalls zahl kommt aus einer anderen Funktion und wird mit

int Wert(int Zufallszahl)

an diese Schleife übergeben. Eigentlich ist es ein Wert der in einem Chart entsteht. Ich möchte mit dem Code den neuen Wert an eine andere Funktion übergeben.

etwa so

4,4,4,4,4, Schleife macht nix
4,4,4,4,6 Schleife bricht ab übergibt (6) an andere Funktion

6,6,6,6,6,6,6,9 Schleife übergibt (9) an andere Funktion

solange die gleiche Zahl kommt dreht sie sich im Kreis


für euch ist das sicher lächerlich - aber ich programmiere erst seit sehr kurzer Zeit

lg mante
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 16:32 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------