Servus,
habe eine Frage zu folgendem Skript. Da sich die Definition der Variablen über 170 Zeilen ersteckt, habe ich mir gedacht, dass ich euch nur den für meine Frage relevanten Teil herauskopiere.
Nun zu meiner Frage:
Wie ihr im Output sehen könnt wird bisher immer alle 60 Sekunden geprüft, welches Signal korrekt ist und dieses wird dann im Output ausgegeben. Mein Ziel wäre nun, dass das Signal nur ausgegeben wird, wenn eine Änderung dieser Variable vorliegt.
D. h. der Output sollte wie folgt aussehen: sell, buy, sell, buy
Ich bin, wie man an meiner Frage sehen kann, noch ein Anfäger.
Würde mich deshalb sehr über eine Lösung oder ein Stichwort für die richtige Suche freuen
Danke im Voraus!
while 0 == 0:
if ema_20 > ema_010:
signal = 'sell'
else:
signal = 'buy'
print(signal)
time.sleep(60)
Output (nach 3x60 Sekunden):
sell
sell
sell
Wert soll nur nach Veränderung ausgegeben werden.
Hi,
wie wäre es, wenn du ne zusätzliche variable last_signal (außerhalb der while-schleife) machst und dann mit ner simplen if-Abfrage das prüfst (also if last_signal == signal: print(...))
Außerdem mach bitte "while True" und nicht "while 0 == 0"
wie wäre es, wenn du ne zusätzliche variable last_signal (außerhalb der while-schleife) machst und dann mit ner simplen if-Abfrage das prüfst (also if last_signal == signal: print(...))
Außerdem mach bitte "while True" und nicht "while 0 == 0"
@Zerox035: 170 Zeilen hört sich nicht gut an. Zwar gibt es für die Länge einer Funktion keine Obergrenze, aber je kürzer, desto besser. Das lässt sich auch besser testen. Wenn ich JakobPries Idee aufgreife, könnte das so aussehen:
Wo das Signal herkommt und was bei Änderung anschließend zu tun ist, ist hier in andere Funktionen ausgelagert. So kannst Du ein Programm kleinteiliger halten und übersichtlicher gestalten.
Code: Alles auswählen
previous_signal = None
while True:
signal = get_signal()
if signal != previous_signal:
previous_signal = signal
do_action(signal)
...