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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 294
Gesamt: 294
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.03.18
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
  #2 (permalink)  
Alt 23.03.18
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
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
  #3 (permalink)  
Alt 23.03.18
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
  #4 (permalink)  
Alt 23.03.18
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
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
  #5 (permalink)  
Alt 24.03.18
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.
  #6 (permalink)  
Alt 24.03.18
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
  #7 (permalink)  
Alt 24.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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
  #8 (permalink)  
Alt 24.03.18
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
  #9 (permalink)  
Alt 24.03.18
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.
  #10 (permalink)  
Alt 24.03.18
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
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, programmierung mql4, random, zahlen, zufallszahl

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 +1. Es ist jetzt 18:03 Uhr.





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