Aufbau eines E-Mini-Trading-Systems mit Hilfe von PHP und erweiterten MySQL-Abfragen Dieser Artikel zeigt illustrative Beispiele dafür, wie PHP und einige erweiterte MySQL-Abfragen verwendet werden können, um ein Online-Handelssystem zu erstellen. Zur Vereinfachung werden wir einen der gängigsten Aktienindizes aufweisen: den S038P 500 Index. Dies wird auch als E-Mini SampP 500 Futures. Einer der am häufigsten gehandelten AktienFutures. Ab September 2009 gab es keine derzeitige Handelssystem im Internet von PHP und MySQL trotz der Beliebtheit der Plattform8217 unter Open-Source-Gemeinschaften angetrieben. Ein Handelssystem wird verwendet, um einen Handel in einem Aktien - oder Futures-Markt einzugeben und zu beenden. Obwohl bei der Beendigung eines Handels, um Gewinne und Kontrolle Verluste greifen, ist Geld-Management ein nützlicheres Werkzeug als ein Handelssystem. Um ein voll funktionsfähiges Handelssystem zu schaffen, benötigen Sie folgende Prozesse: Die Rohdaten sollten einer seriösen Quelle für SampP 500 Indexdaten entnommen werden. In diesem Artikel werden wir mit Yahoo Finanzen Daten. Der Export-Dateityp ist meistens. csv und Excel, also müssen Sie zuerst die Rohdaten in die MySQL-Datenbank exportieren. (Siehe Details unten) Das Herz des Prozesses ist das Handelssystem. Es ist eine Methode, um Rohdaten zu analysieren und Entscheidungen zu treffen. Jeder Trader hat seine eigenen Trading-System zu folgen, aber in diesem Beispiel werden wir die folgenden Regeln verwenden: Regel 1. Definieren Sie Delta als Differenz zwischen 50 Tagen gleitenden Durchschnitt und 200 gleitenden Durchschnitt. Wenn das Delta positiv ist, deutet es auf eine bullische Tendenz hin, andernfalls ist es8217s bearish. Sie können mehr über gleitende Durchschnitte lesen. Regel 2 Definieren Sie die Stärke des Trends als DeltaMA 200. Dies quantifiziert die Stärke des Trends. Bewerben historische Daten (Grenzen definieren) für die Beurteilung (Berechnung der Grenzen ist aus dem Rahmen für dieses Tutorial). Das ist eher eine Trendbestätigung. Verwenden Sie PHP, um die Daten in HTML-Tabellen anzuzeigen, während Sie MySQL-Vorabfragen verwenden (Durchschnittswerte berechnen und Indexdaten abrufen), um einige Berechnungen des gleitenden Durchschnitts durchzuführen. Schritt 1 . Laden Sie die raw SampP 500-Indexdaten von finance. yahooqhps5EGSPC herunter und formatieren Sie die Excel-Tabelle so, dass sie wie das folgende Bild aussehen (löschen Sie nicht benötigte Spalten wie Handelsvolumen und fügen Sie den neuen Spalteneintrag hinzu): Ihre MySQL-Tabelle sollte wie oben aussehen. Allerdings ist der obige Screenshot noch im CSV-Format Schritt 2. Konvertieren Sie die. csv in. sql und laden Sie auf Ihren MySQL-Server hoch. Sie können einen Artikel lesen, der erklärt, wie Sie Ihr Excel-Arbeitsblatt konvertieren. Schritt 3 . Es ist Zeit, das PHP-Skript zu schreiben. Zuerst haben wir auf die Datenbank mit dem Skript verbinden unter: connect to MySQL-Datenbank-Benutzernamen quotyour mysql usernamequot Passwort quotyour mysql passwordquot Hostnamen quotyour mysql hostnamequot Datenbank quotyour mysql databasequot dbhandle mysqlconnect (Hostname, Benutzername, Passwort) oder sterben (quotUnable zu MySQLquot zu verbinden) wählen Eine Datenbank zu arbeiten oder zu sterben (quotCould not select databasequot) Schritt 4. Um zu wissen, wie viele Zeilen in der Datenbank, die ein Wert, der in unserer Berechnung verwendet wird, ist, werden wir Abfrage MySQL: zählen die Anzahl der Zeilen in der Datenbank, einschließlich der letzten Eintrag Ergebnis1 mysqlquery (quotSELECT FROM sp500quot) speichern Sie die Datensatz der quotexamplequot - Tabelle in Zeile oder Matrix (quotInvalid query: mysqlerror ()) Den Inhalt des Eintrags ausdrucken Die numberofentries enthält die maximale Anzahl von Zeilen in der MySQL-Tabelle (im obigen Screenshot ist es 15020). Die Daten in der MySQL-Tabelle werden von den letzten Einträgen bis hin zu alten Einträgen geordnet. Siehe Screenshot oben. Mit den mysqlnumrows wird die Anzahl der Zeilen in der Tabelle SP500 gezählt. Schritt 5. Berechnen Sie den letzten Eintrag, der in der HTML-Tabelle angezeigt werden soll. Da wir nur die letzten 50 Zeilen darstellen, wird folgendes verwendet: lastentry numberofentries -50 1 Dies bedeutet, dass wir zum Beispiel 15020 Einträge in der Tabelle haben, die wir Ihnen von Anfang 15020 bis (15020- 501) oder Eintrag 14971. Dieser Wert, sowie die maximale Eintrag oben, wird sich ändern, wie Handelstage vergeht. Schritt 6. Machen Sie eine MySQL-Abfrage, um die letzten 50 Tage der Einträge zu extrahieren. Result2 mysqlquery (quotSELECT FROM sp500 WHERE entrygt8217lastentry8217 AND entrylt8217numberofentries8217 ORDER BY entry DESCquot) Der schwierige Teil besteht darin, die resultierenden Abfragen in absteigender Reihenfolge zu sortieren. Dadurch wird sichergestellt, dass die Ausgabeergebnisse von den neuesten bis zu den ältesten Einträgen sortiert werden. Schritt 7. Definieren Sie die Grenzen für den gleitenden 200-Tage-Durchschnitt und den gleitenden 50-Tage-Durchschnitt: Definieren Sie Limits für 200 Tage gleitende durchschnittliche untere Limitanzahl 8211 200 1 Definieren Sie Limits für 50 Tage gleitenden Durchschnitt lowerlimit50 numberofentries 8211 50 1 Step 8. Definieren Sie die MySQL-Abfrage, um den 200-Tage gleitenden Durchschnitt zu berechnen. result3 mysqlquery (quotSELECT avg (schließen) aus SP500 WHERE entrygt8217lowerlimit8217 UND entrylt8217upperlimit8217quot) in Reihe die Aufzeichnung der quotexamplequot Tabelle speichern oder sterben (quotInvalid Abfrage:. quot mysqlerror ()) Drucken Sie den Inhalt des Eintrags Schritt 9. Definieren Sie die MySQL-Abfrage, um den gleitenden 50-Tage-Durchschnitt zu berechnen. result4 mysqlquery (quotSELECT avg (schließen) aus SP500 WHERE entrygt8217lowerlimit508242 UND entrylt8217upperlimit8217quot) in Reihe die Aufzeichnung der quotexamplequot Tabelle speichern oder sterben (quotInvalid Abfrage:. quot mysqlerror ()) Drucken Sie den Inhalt des Eintrags Schritt 10. Weisen Sie Variablen und runden Zahlen für einfachere HTML-Anzeige zu. Schritt 11. Berechnen Sie DELTA und runde Ergebnisse. Schritt 12. Berechnen Sie STÄRKE und runde Ergebnisse. Schritt 13. Erstellen Sie das PHP-Skript, um Empfehlungen zu machen. Empfehlung 8216above GESÄTTIGTEN BULL TREND (sehr hohes Risiko BUYING) 8217 elseif (z gt5.1 ampamp z lt8.5) Empfehlung 8216CONFIRMED BULL TREND (HIGH Risikokaufens) 8217 elseif (z gt2 ampamp z LT5) Empfehlung 8216CONFIRMED BULL TREND (LOW Risikokaufens ) 8217 elseif (z GT0 ampamp z lt1.99) Empfehlung 8216UNCONFIRMED BULL TREND8217 elseif (z LT0 ampamp z gt-4.99) Empfehlung 8216UNCONFIRMED BEAR TREND8217 elseif (z lt-5 ampamp z gt-8) Empfehlung 8216CONFIRMED BEAR TREND (geringes Risiko KURZ ) 8217 Empfehlung 8216SATURATED BEAR TREND (SEHR HOHE RISIKENKURZ) 8217 Hinweis: Schwellenwerte wurden aus historischen Aufzeichnungen von SampP entnommen. Diese Berechnungen liegen außerhalb des Umfangs dieses Tutorials. Schritt 14. Kombinieren Sie alle Abfragen oben und Berechnungen. Dann drucken Sie auf einer HTML-Tabelle eine While-Schleife: if (mysqlnumrows (result2) GT0) echo 8216lttable width100 cellpadding10 cellspacing10 border1gt8217 Echo 8216lttable width100 border1gt8217 Echo 8216lttrgtlttdgtltbgtEntryltbgtlttdgtlttdgtltbgtDateltbgtlttdgtlttdgtltbgtOpenltbgt lttdgtlttdgtltbgtHighltbgtlttdgtlttdgtltbgtLowltbgtlttdgtlttdgtltbgtCloseltbgtlttdgt lttdgtltbgtMA200ltbgtlttdgtlttdgtltbgtMA50ltbgtlttdgtlttdgtltbgtDeltaltbgtlttdgt lttdgtltbgtStrengthltbgtlttdgtlttdgtltbgtRecommendationltbgtlttdgtlttrgt8217 während (row2 mysqlfetchrow (result2)) result3 mysqlquery (quotSELECT avg (schließen) von SP500 WO entrygt8217lowerlimit8217 uND entrylt8217upperlimit8217quot) in Reihe die Aufzeichnung der quotexamplequot Tabelle speichern oder sterben (quotInvalid Abfrage:. quot mysqlerror ()) drucken Sie den Inhalt des Eintrags result4 mysqlquery (quotSELECT avg (schließen) von SP500 WHERE entrygt8217lowerlimit508242 uND entrylt8217upperlimit8217quot) Speichern Sie den Datensatz der quotexamplequot-Tabelle in Zeile oder Matrix (quotInvalid query: quot. mysqlerror ()) Drucken Sie den Inhalt des Eintrages Empfehlung 8216above GESÄTTIGTEN BULL TREND (sehr hohes Risiko BUYING) 8217 elseif (z gt5.1 ampamp z lt8.5) Empfehlung 8216CONFIRMED BULL TREND (HIGH Risikokaufens) 8217 elseif (z gt2 ampamp z LT5) Empfehlung 8216CONFIRMED BULL TREND (LOW Risikokaufens) 8217 elseif (z GT0 ampamp z lt1.99) Empfehlung 8216UNCONFIRMED BULL TREND8217 elseif (z LT0 ampamp z gt-4.99) Empfehlung 8216UNCONFIRMED BEAR TREND8217 elseif (z lt-5 ampamp z gt -8) Empfehlung 8216CONFIRMED BEAR TREND (geringes Risiko SHORT) 8217 Empfehlung 8216SATURATED BEAR TREND (sehr hohes Risiko SHORT) 8217 Beitrag navigationLike Dieser Gegensatz zu offender 27. Dezember 2013 gut gelang es mir, die Skripte zu stellen, und alles funktioniert, aber einige Skripte nicht funktionieren Mit Online-Datenbank wie Erfolgssystem rpgmakerv. A-Errungenschaften und auch über logdate in der Datenbank zeigen sie als 1388097084 und ich habe eine Frage über Nickname, wird der Nickname-Effekt den Charakter-Namen oder seine nur die Spitznamen, die in Online-Ranking oder ein anderes System verwendet werden, weil, wenn ich spielte die Demo Der Name des Charakters geändert, ich bin nicht sicher, ob es wegen der Charakter-Erstellung, aber ich habe Charakter-Erstellung aus dem Spiel entfernt. Auch, über die Bearbeitung der Datenbank, wie der Spieler neue Informationen in die Datenbank aktualisieren, weil wenn ich versuchte es in meinem Spiel, bekomme ich 40k Gold, aber seine nicht aktualisiert in der Datenbank, auch wenn ich exp seine auch nicht aktualisiert in der Datenbank. Auch die Ebene, hp, mp, Element, Skill und Schritte nicht aktualisiert, fügte ich die VARIABLE zu Game Infos amp Datas in Skripten wie die anderen auch, wenn ich ein neues Feld in der Datenbank hinzufügen wollen, brauche ich, um neue benutzerdefinierte Skript hinzufügen Und hier ein besserer Weg, um sich anzumelden und zu registrieren, wenn Sie es schaffen, dies zu Ihrem Skript hinzufügen Ich denke, dies besser, weil seine einfach zu bedienen. Wenn Spieler das Spiel starten er nicht brauchen, um Neues Spiel zu sehen, beenden Sie alles, was er brauchen, um zu sehen, ist die Anmeldung und Registrieren und vergessen Sie Passwort-Taste, die ihn bitten, die E-Mail, die er hinzugefügt, wenn er registriert. Gut, müssen Sie eine weitere Sache hinzufügen, wenn Spieler registrieren. Derzeit seinen Benutzernamen, Passwort, Nickname. Ich denke, Sie sollten E-Mails hinzufügen, damit er sein Passwort wiederherstellen kann, indem Sie auf Passwort vergessen, als geben Sie seine E-Mail und er wird sein Passwort auf dem Bildschirm zu sehen. Mit Nachricht wie Ihr Passwort ist, die mit dieser E-Mail registriert wurde lt so etwas, wenn die E-Mail nicht verwendet wird diese E-Mail nicht verwendet wird. Warten auf Ihre Antwort Wie diese Im Gegensatz zu efeberk 27 Dec 2013 Logdate wurde vorbereitet, um Multi-Logins zu verhindern. Wenn Sie checkMultiLogin (nicknamevariable) verwenden, wird überprüft, ob sich logDate geändert hat. Wenn es wahr ist, wird es Spiel zu schließen. Spitzname ist der Name des Zeichens. Ich meine seine Schauspieler Namen. Wenn Sie möchten, dass neue Informationen an die Datenbank zu senden, müssen Sie wissen, grundlegende ruby amp php amp mySQL. Es gibt eine Methode namens updatePlayer im Skript Funktionen. Schauen Sie dort und Sie werden sehen, alle erforderlichen Daten wurden an den Server gesendet. Sie können eine neue Daten dort hinzuzufügen, aber es beendet nicht mit ihm. Sie müssen auch updatePlayer. php im PHP-Ordner bearbeiten. Beispiel. Wenn Sie den ATK-Parameter an den Server senden möchten. Zuerst müssen Sie einen neuen Parameter zur updatePlayer-Funktion in RGSS3 hinzufügen. Auch müssen Sie eine Variable auf der PHP-Datei hinzufügen und Sie müssen es auf SQL-Abfrage hinzufügen. So wird es erfolgreich zum Server hinzufügen. Aber es doesnt beenden updatePlayer Funktion sendet Daten an den Server und refreshPlayer Funktion Abrufen von Daten aus Server und Verarbeitung an den Schauspieler. Wenn Sie also ATK-Parameter zur Struktur hinzufügen, müssen Sie diese auf der refreshPlayer-Funktion hinzufügen. Es wird 64 (Beispiel) ATK auf den Akteur gesetzt, wenn der Benutzer erfolgreich geloggt. Wenn Sie Update Spieler im Spiel benötigen, müssen Sie nur updatePlayer (nicknamevariable) verwenden. So sendet es alle Infos diese erforderlich. Sie können es auf einem parallelen Prozess (alle 30 Sekunden es Updates oder so ähnlich.) Wenn Sie ein E-Mail-Bestätigungs-System hinzufügen möchten, können Sie es tun. Es gibt viele Tutorials für PHP und Sie können es leicht finden. Ich habe auch vorbereitet Demo, wie Sie sahen, können Sie es spielen Für Achivement Fehler, Im nicht im Haus, wenn Sie also eine Demo oder etwas senden können, kann ich es testen und ich kann sagen, was ist faul genau wie diese Im Gegensatz zu OffeNDer 27 Dec 2013 i Wissen, MySQL, (nicht zu viel), kann ich lernen, PHP aus Tutorials. Meine letzte Frage. In meinem Spiel habe ich Partei, (insgesamt 4 in-Party mit dem neuen Spieler) Spieler 1 ist die wichtigste, also wenn ich die Daten in die Datenbank zu aktualisieren. Ich melde mich wieder an und die Hauptcharaktere haben noch die gleiche Stufe 4, aber die anderen starten wieder von 1, können Sie mir dabei helfen. Wie dieses Im Gegensatz zu efeberk 27 Dec 2013 Ich weiß, mysql, (nicht zu viel), kann ich lernen, PHP aus Tutorials. Meine letzte Frage. In meinem Spiel habe ich Partei, (insgesamt 4 in-Party mit dem neuen Spieler) Spieler 1 ist die wichtigste, also wenn ich die Daten in die Datenbank zu aktualisieren. Ich melde mich wieder an und die Hauptcharaktere haben noch die gleiche Stufe 4, aber die anderen starten wieder von 1, können Sie mir dabei helfen. Ich fügte nicht Partei zum Index hinzu. So müssen Sie sie auf Ihrem System hinzufügen. Sie können mich auf Skype kontaktieren. Lass uns reden. Gefällt mir Im Gegensatz zu Freezy 15 Jan 2014 Pretty Cool Script. Ich kann dieses Skript gut in meinem Spiel verwenden, ich habe eine Homepage mit Datenbank (PHP MYSQL), Ich mag keinen kostenlosen Provider Aber, wenn ich das Script MySql installiert habe, wurde ich ein Game Interpreter Error nach dem Login-Prozess, mhh wenn ich Einloggen mit einem 000webhost, mit einer freien Domain, ich habe keine Fehler nach Login und inGame. Aber, wenn ich mit meiner Website Verbunden mit dem Spiel, werde ich einige Fehler, ich kann ein Konto registrieren, aber ich kann nicht im Spiel anmelden. Können Sie mir helfen Was mache ich falsch Wie dies Im Gegensatz zu DarkDevilz 20 Jan 2014 falsch (Login) und bereits registriert (Register) immer das Problem .. anybody kann mir helfen Wie diese Im Gegensatz zu Nik0405 07 Feb 2014 Sehr cooles Skript DarkDevilz können Sie nur Anmelden oder registrieren, wenn Sie alles wie in dem Video erklärt. In der Demo es funktioniert nicht für mich, bis ich habe meine eigene MYSQL-Datenbank. Aber jetzt meine eigenen qoestions: - Wie kann ich löschen Konten - Wie kann der Spieler Loggout ohne Rückkehr zum Titel oder das Spiel beenden - Können Sie machen, dass der Preis in der Notebox ist das Minimum, das der Spieler es verkaufen kann. - Ich frage mich, ob Sie machen können, dass einige Gegenstände nur von anderen Spielern gekauft werden können, wenn einige Voraussetzungen erfüllt sind (Lvl, Charakter.) - Wie kann ich einstellen, welche Gegenstände auf dem Basar verkauft werden können - Wie kann ich Rüstungen oder Waffen verkaufen - Wenn ich einen Shop für 20000G mieten die Spieler G nicht dicreased werden. Ich frage mich, ob ich etwas falsch Vielleicht kann jemand mir helfen, mit einigen meiner Frage
No comments:
Post a Comment