Hallo,
19.12.05:
Wer mal mein Weblog besuchen möchte, hier hab ich alles nochmal zusammengefasst:
http://qweet.blogspot.com/
12.11.05:
Wer mein Programm gern schnell selber einmal ausprobieren möchte, dem empfehle ich es sich hier runterzuladen.
http://esnips.com/web/qweet-public
Bei mir läuft es unter Windows XP.
edit: Name: From_Client_public2.zip
Ich bitte jeden den das hier halbwegs ein bischen interessiert, einfach nur kurz ein Kommentar zu schreiben. Auch wenns nur ein Wort ist. Danke.
ja wo soll ich anfangen? Ich bin ein Trader. Ich versuche Geld zu verdienen im Devisenmarkt. Auch genannt FOREX. Dies ist auch für Privatleute möglich.
Ich trade bei www.oanda.com. Ein guter Broker wie ich finde.
Der Devisenmarkt ist rund 2 Billionen Dollar schwer. Das ist zumindest der Tagesumsatz. Das ist der Grund warum es mich reizt doch mitzumachen. Einfach die große Chance auf verdammt viel Geld.
Meine Erfahrungen im Devisenmarkt reichen nun mehr circa zurück bis Frühling diesen Jahres. Ich habe viel ausprobiert und wieder neu getestet. Analystenmeinungen gelesen, Indikatoren benutzt usw. Meine Meinung ist jedoch das nur der aktuelle Preis die Wahrheit anzeigt. Das ist nicht meine Idee gewesen. Nur finde ich sie sehr überzeugend. Wer näheres dazu erfahren will schaut bitte hier:
http://www.leavittbrothers.com/chartspe ... 082904.pdf
Irgendwann bei der Beobachtung des Preises ist mir dann klar geworden, das jede Änderung des Preises, jede kleine Bewegung doch im Endeffekt, meiner Meinung nach, nur absolut reiner Zufall ist. Viele tausend Leute nehmen täglich aus am Marktgeschehen teil. Und jeder von ihnen bewertet die Situation anders. Trotzdem sind alle gezwungen eine Aktion, einen Handel auszuführen. Einen von dem sie glauben, dass es ihnen den meisten Profit bringen wird.
Somit war für mich klar, dass jede Änderung des Preises doch nur Zufall sein kann. Ich habe nicht die Möglichkeiten als Einzelner all diese Unmengen an Daten auszuwerten und dann darauf basierend meine Entscheidung zu treffen.
Aus diesem Grund schrieb ich mir ein Programm. Das Zufallsexperiment. Ich war der Meinung, dass wenn ich schnell hintereinander Entscheidungen treffen muss und sofort sehe, ob diese Entscheidungen eher positiv oder negativ waren, dass dies eine Art Training ist, wenn ich dann richtig im Devisenmarkt bin.
Ich kann es nicht absolut beweisen, aber ich habe mit der Verbesserung meines Programmes immer mehr geglaubt, dass dem so ist. Eine Abfolge von Momenten und richtigen Entscheidungen führt am Ende zum Erfolg.
Damit sich das jeder einmal selber anschauen kann, biete ich hier mein Programm als OpenSource an. Zum Ausprobieren benötigst du jedoch noch folgende Module:
wxPython für die grafische Oberfläche.
wxPython-Download: http://www.wxpython.org/download.php
Einen Clienten um an die Zufallszahlen heranzukommen. Diese werden durch atmosphärisches Rauschen erzeugt. Zu finden auf der Seite:
randomclient-Download: http://www.random.org/clients/
Bitte schauen nach:
Python Client
Author: Chris Fuller
Date: June 20, 2002
Language: Python
Requirements: Python 1.5.2 or later
Ich möchte noch die Bemerkung machen, dass ich bei fortschreitender Entwicklung des Zufallsprogrammes, es mir so vorkam, dass ich immer komplexer über mein Projekt wachen konnte. Ich muss sagen, dass ich absolut bei Null angefangen habe. Ich hatte keine Kenntnisse über Python. Und von diesem absoluten Grund bin ich dann immer "höher" gekommen. Ich konnte immer mehr überschauen, jedoch ohne den Bezug zur Basis zu verlieren. So kam es mir vor.
Tja, vielleicht fragst du dich, warum ich das alle schreibe? Der Grund ist, dass ich einfach nicht mehr weiterkomme mit meinem Programm. Es ist mir als ob ich auf der Stelle trete. Da ich ziemlich von der Richtigkeit meiner Gedanken überzeugt bin, ist meine Hoffnung dass andere vielleicht auch daran glauben und das Programm weiterentwickeln und es ebenso frei und kostenlos wieder hergeben.
Ich würde nämlich sogar so weit gehen, dass wenn es möglich ist die für sich richtige Entscheidung zu fällen, ebendies zu trainieren, dies vielleicht auch einen positiven Effekt auf das eigene Leben haben könnte und das eben nicht nur an den Profit in einem Devisenmarkt gebunden ist. Vielleicht stürmen auf jeden von uns jeden Tag aufs Neue zufällige Ereignisse ein und wenn man sich daran gewöhnt hat für sich die richtige Entscheidung zu treffen, kann man so etwas besser meistern.
Aber das ist wirklich nur ein Gedanke.
Mehr habe ich nicht zu sagen. Das Programm funktioniert einwandfrei bei mir. Ich benutze Windows XP.
Grüße,
qweet
edit: Um das Programm zu nutzen drücke einfach auf der Zahlenreihe über den Buchstaben die 1 oder 0. Dies stellt die eigene Prognose dar.
Programm-code:
Code: Alles auswählen
import wx
import randomclient
class GetRandomNumbers:
def __init__(self, HowManyNumbers):
self.HowManyNumbers = HowManyNumbers
self.NewCalculatedNumbers = []
self.GuessedRightOrWrong = []
ListedNumbers = self.GetNumbersFromClient(self.HowManyNumbers)
self.NewCalculatedNumbers = self.CalcNewNumbers(ListedNumbers, self.HowManyNumbers)
self.GuessedRightOrWrong = self.CalcGuessed(self.HowManyNumbers)
def GetNumbersFromClient(self, HowManyNumbers):
ListedNumbers = randomclient.truerand(HowManyNumbers/8, 'b')
return ( ListedNumbers )
def CalcNewNumbers(self, ListedNumbers, HowManyNumbers):
NewNumbers = []
for i in range(HowManyNumbers/8):
for j in range(8):
NewNumbers.append( ListedNumbers[i][j] )
return ( NewNumbers )
def CalcGuessed(self, HowManyNumbers):
GuessedRightOrWrong = []
for i in range(HowManyNumbers/8):
for j in range(8):
GuessedRightOrWrong.append ( 'P' )
return ( GuessedRightOrWrong )
class random_numbers_from_client:
def __init__(self):
self.how_many = input("Wieviele Zufallszahlen sind gewuenscht? (nur Vielfache von 8! max.80000): ")
self.block_length = input("Laenge eines sichtbaren Blockes: ")
print "Laenge eines sichtbaren Blockes betraegt ",self.block_length
self.random_numbers = GetRandomNumbers(self.how_many)
self.new_random_numbers = self.random_numbers.NewCalculatedNumbers
class PressedKey(wx.Panel):
def __init__(self, parent, parent2, parent3):
wx.Panel.__init__(self, parent3, -1, style=0)
self.Bind(wx.EVT_CHAR, self.LogKeyEvent)
self.SetFocus()
self.Panel_instance_left = OutputPanel_left(parent)
self.Panel_instance_right = OutputPanel_right(parent2)
self.cnt_rnd_n = 0
self.block_counter = 0
self.block_spread = 0
self.whole_spread = 0
self.right_forecasts = 0
self.all_slots = []
for i in range(2*rnfc.block_length):
self.all_slots.append(['', ''])
def LogKeyEvent(self, evt):
if self.cnt_rnd_n != rnfc.how_many:
self.PressedKeyCode = evt.GetKeyCode()
Z_O_instance = Zero_or_One(self.PressedKeyCode, 1)
for i in range(len(Z_O_instance.StringToDraw)):
e_v_instance = evaluate_guess(self.cnt_rnd_n, i,
Z_O_instance.StringToDraw, rnfc.new_random_numbers)
self.cnt_rnd_n += 1
self.block_counter += 1
if self.block_counter == (rnfc.block_length+1):
self.block_counter = 1
self.block_spread = 0
for i in range(2*rnfc.block_length):
self.all_slots[i] = ['', '']
self.right_forecasts += e_v_instance.right_forecast
self.whole_spread += e_v_instance.Spread
self.block_spread += e_v_instance.Spread
self.all_slots[0] = e_v_instance.slot0
self.all_slots[1]= e_v_instance.slot1
#frame 1
self.Panel_instance_right.cnt_rnd_n.SetLabel(str(self.cnt_rnd_n))
self.Panel_instance_right.block_counter.SetLabel(str(self.block_counter)+
'/'+str(rnfc.block_length))
self.Panel_instance_right.whole_spread.SetLabel(str(self.whole_spread))
self.Panel_instance_left.block_spread.SetLabel(str(self.block_spread))
for i in range(2*rnfc.block_length):
self.Panel_instance_left.all_slots[i].SetForegroundColour(self.all_slots[i][1])
self.Panel_instance_left.all_slots[i].SetLabel(self.all_slots[i][0])
for i in range(2*rnfc.block_length-2):
self.all_slots[(2*rnfc.block_length-1)-i] = self.all_slots[(2*rnfc.block_length-3)-i]
if self.cnt_rnd_n == (rnfc.how_many):
self.Panel_instance_right.result.SetLabel('result: '+str(self.whole_spread))
self.Panel_instance_right.right_forecasts.SetLabel('right_forecasts: '+str(self.right_forecasts))
self.Panel_instance_right.how_many.SetLabel('how_many: '+str(rnfc.how_many))
percent = (self.right_forecasts) / float(rnfc.how_many) * 100
self.Panel_instance_right.percent.SetLabel('percent: '+str(percent)+'%')
class OutputPanel_left(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1, style=0)
self.SetBackgroundColour("BLACK")
self.block_spread = wx.StaticText(self, -1, '')
self.block_spread.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.BOLD))
self.block_spread.MoveXY(750, 0)
self.block_spread.SetForegroundColour('WHITE')
self.all_slots = []
x_left_slots = 770
x_right_slots = 780
y_both = 0
j = 0
for i in range(2*rnfc.block_length):
if (y_both > 500):
j = 0
x_left_slots -= 20
x_right_slots -= 20
y_both = 20+j*15
left_slot = wx.StaticText(self, -1, '')
left_slot.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.BOLD))
left_slot.MoveXY(x_left_slots, y_both)
right_slot = wx.StaticText(self, -1, '')
right_slot.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.BOLD))
right_slot.MoveXY(x_right_slots, y_both)
self.all_slots.append(left_slot)
self.all_slots.append(right_slot)
j += 1
class OutputPanel_right(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1, style=0)
self.SetBackgroundColour("BLACK")
self.whole_spread = wx.StaticText(self, -1, '0')
self.whole_spread.SetForegroundColour("WHITE")
self.whole_spread.MoveXY(0,10)
self.whole_spread.SetFont(wx.Font(50, wx.MODERN, wx.NORMAL, wx.BOLD))
self.cnt_rnd_n = wx.StaticText(self, -1, '0')
self.cnt_rnd_n.SetForegroundColour("WHITE")
self.cnt_rnd_n.MoveXY(0, 100)
self.cnt_rnd_n.SetFont(wx.Font(50, wx.MODERN, wx.NORMAL, wx.BOLD))
self.block_counter = wx.StaticText(self, -1, '0/'+str(rnfc.block_length))
self.block_counter.SetForegroundColour("WHITE")
self.block_counter.MoveXY(0, 200)
self.block_counter.SetFont(wx.Font(50, wx.MODERN, wx.NORMAL, wx.BOLD))
self.result = wx.StaticText(self, -1, '0')
self.result.SetForegroundColour("WHITE")
self.result.MoveXY(300,0)
self.result.SetFont(wx.Font(20, wx.MODERN, wx.NORMAL, wx.BOLD))
self.right_forecasts = wx.StaticText(self, -1, '0')
self.right_forecasts.SetForegroundColour("WHITE")
self.right_forecasts.MoveXY(300,100)
self.right_forecasts.SetFont(wx.Font(20, wx.MODERN, wx.NORMAL, wx.BOLD))
self.how_many = wx.StaticText(self, -1, '0')
self.how_many.SetForegroundColour("WHITE")
self.how_many.MoveXY(300,200)
self.how_many.SetFont(wx.Font(20, wx.MODERN, wx.NORMAL, wx.BOLD))
self.percent = wx.StaticText(self, -1, '0')
self.percent.SetForegroundColour("WHITE")
self.percent.MoveXY(300,300)
self.percent.SetFont(wx.Font(20, wx.MODERN, wx.NORMAL, wx.BOLD))
class Zero_or_One:
def __init__(self, PressedKeyCode, How_many):
Key_1 = 49 #1
Key_q = 113 #11
Key_w = 119 #10
Key_0 = 48 #0
Key_p = 112 #00
Key_o = 111 #01
self.StringToDraw = ''
if PressedKeyCode in [ Key_1 ]:
for i in range(How_many):
self.StringToDraw += '1'
elif PressedKeyCode in [ Key_0 ]:
for i in range(How_many):
self.StringToDraw += '0'
elif PressedKeyCode in [ Key_q ]:
self.StringToDraw += '11'
elif PressedKeyCode in [ Key_w ]:
self.StringToDraw += '10'
elif PressedKeyCode in [ Key_p ]:
self.StringToDraw += '00'
elif PressedKeyCode in [ Key_o ]:
self.StringToDraw += '01'
class evaluate_guess:
def __init__(self, cnt_rnd_n, i, StringToDraw, random_numbers):
self.Spread = 0
self.right_forecast = 0
self.slot0 = ['', '']
self.slot1 = ['', '']
if StringToDraw[i] == random_numbers[cnt_rnd_n]:
self.Spread += 0.5
if StringToDraw[i] == '1':
self.slot0 = ['1', 'GREEN']
self.slot1 = ['', '']
elif StringToDraw[i] == '0':
self.slot1 = ['0', 'GREEN']
self.slot0 = ['', '']
self.right_forecast += 1
elif StringToDraw[i] != random_numbers[cnt_rnd_n]:
self.Spread -= 0.5
if StringToDraw[i] == '1':
self.slot0 = ['1', 'RED']
elif StringToDraw[i] == '0':
self.slot1 = ['0', 'RED']
class MyApp(wx.App):
def OnInit(self):
frame1 = wx.Frame(None, -1, "Right Or Wrong", pos=(0,0), size=(800,600))
frame2 = wx.Frame(None, -1, "Results", pos=(800,0), size=(800,600))
frame3 = wx.Frame(None, -1, "Keep Focus", pos=(800,600), size=(800,600))
PressedKey(frame1, frame2, frame3)
frame1.Show(True)
frame2.Show(True)
frame3.Show(True)
return True
rnfc = random_numbers_from_client()
app = MyApp(0)
app.MainLoop()