Post Reply  Post Thread 

Releasing my Rating Script

Author Message
sero
Benjamin Netter
**


Posts: 4,363
Words count: 293,320
Group: Premium
Joined: Jun2008
Status: Offline
Reputation: 123
Experience: 1480
Glory Points: 370
Medals: 22

Post: #1
Releasing my Rating Script

English
Hello, some time ago some people and me created a formular to create a credit-rating system for Ars-Regendi world states.

I've coded a script getting all the needed informations of a state from a list which then calculate the rating and saves it.
Today I am going to release this script. You're free to use it.

Here's the link to the source code:
Seros Credit-Rating Script

Deutsch
Hi, ein paar Spieler und ich haben vor Monaten eine Formel für ein Rating der Weltstaaten erstellt. Heute habe ich mich entschieden mein dafür entwickeltes Script zu veröffentlichen.

Hier ist der Link zum Skript:
Seros Credit-Rating Script




English
The script is not fully optimised. If a state is in the list which is offline OR Ars-Regendi thinks it should troll again, the script will stop (but saying where). There's no official API yet which makes this script a bit unstable. If the API will be added, I might consider rewriting the script, making it more stable.

How to use:

1. Edit the states.txt and add the >>ID<< of a state.
e.g. http://www.ars-regendi.com/state/141845/show.html then the ID is 141845
2. Run the Rating.py. (Before you do, delete the rating.csv)
3. Open rating.csv, if you want you can use my makro called "Tabelle-Hintergrund.vb" (=table background), it will color the background of the row dependent on the rating.
4. Publish your Rating, get famous and be hated

Deutsch
Das Skript ist nicht optimiert. Wenn ein Staat in deiner Liste offline ist, oder Ars-Regendi wieder trollen möchte, kann es passieren, dass das Skript abbricht. Allerdings ist es dann so nett und erzählt dir welcher Staat das Übel ist Tongue. Solange die API noch nicht eingefügt wurde, werde ich vorerst das Skript nicht ändern. Mit der API sollte zumindest das Ars-Regendi Trollen aufhören Hehe

Wie benutzen?

1. Editiere die states.txt und füge die gewünschte(n) ID(s) ein.
Bsp.: http://www.ars-regendi.com/state/141845/show.html dann ist die ID 141845
2. Benutz die Rating.py. (Bevor du dies tust, solltest du evtl. erstmal die rating.csv löschen!)
3. Öffne die rating.csv und wenn du möchtest benutze mein Makro namens "Tabelle-Hintergrund.vb". Es wird die Zeilen farblich machen, basierend auf das erhaltene Rating des Staates.
4. Veröffentliche dein Rating, werde berühmt und bekomm den Hass zu spüren.




English
Here's the formular:

Quote:
The international Reputation

If Int. Rep < 0 -> Wruf = -Rf If Int. Rep >= 0 -> Wruf = Int. Rep

Next step is the regentfactor (Rf)

Rf = (Popularity + Influence) * Election in %

Now the qualitative factor "The Statefactor"

STf = Rf + Wruf

If STf > 1 then just the decimal place is used and is added by 1 (e.g. STf = 4.3 => 1.3) If STf > 0 && STf < 1 then STf stays the same (e.g. STf = 0.6 => 0.6) If STf < 0 then STf becomes 0

Quantitative factors

This part comes by the user Himami.

X1 = Gov.-Debt / nom. GDP X2 = new debt / nom. GDP X3 = interest payment / state income

Award for points

X1 over -30% = 5 points X1 under -30% = 4 points X1 under -50% = 3 points X1 under -80% = 2 points X1 under -100% = 1 points X1 under -150% = 0 points

X2 over 0% = 3 points X2 under 0% = 2 points X2 under -3% = 1 points X2 under -6% = 0 points

X3 over 0% = 5 points X3 under 0% = 4 points X3 under -3% = 2 points X3 under -6% = 1 points X3 under -8% = 0 points

Yearly economic growth (X4)

state-template dependent factor (Y) Code: superpower: 2.0% industrial power: 2.2% ressource power: 1.9% Emerging nation: 2.5% industrial country: 1.9% postcommunistic: 2.3% fundamentalist: 2.6% developing country: 1.3%

Formular - calculating X4 Economy previous year >= Y => 2 points 0 < Economy previous year < Y => 1 points Economy previous year = 0 => 0 points Economy previous year < 0 => -1 points

All points get added together

Rating-points = X1 + X2 + X3 + X4 + STf

State-template bonus

superpower, industrial power: +3 points
ressource power: +1 points
industrial country, Emerging nation: +- 0 points
postcommunistic, fundamentalist, developing country: -1 points

The bonus gets added

Sign

X1, X2, X3 and X4 are considered.

If the difference between the 2 highest numbers are equal or higher than 2 => "-"
If the difference between the 2 lowest numbers are equal or higher than 2 => "+"
If both happens no sign will be added.

Highest possible Score: 16 points

Rating = Points
AAA = 98% - 100%
AA = 86% - 98%
A = 74% - 86%
BBB = 62% - 74%
BB = 50% - 62%
B = 38% - 50%
CCC = 26% - 38%
CC = 14% - 26%
C = 2% - 14%
D = 0% - 2%

Rating = Points
AAA = 15,68 - 16
AA = 13,76 - 15,68
A = 11,84 - 13,76
BBB = 9,92 - 11,84
BB = 8,00 - 9,92
B = 6,08 - 8,00
CCC = 4,16 - 6,08
CC = 2,24 - 4,16
C = 0,32 - 2,24
D = 0 - 0,32

Therefore following will be used:

Rating = Points
AAA = 15 - 16
AA = 13 - 15
A = 11 - 13
BBB = 9 - 11
BB = 8 - 9
B = 6 - 8
CCC = 4 - 6
CC = 2 - 4
C = 1 - 2
D = 0 - 1


Deutsch
Folgende Formel wird benutzt/beachtet:

Berechnung des Ratings
Version: 210413

Der Weltruf wird wie folgt berechnet:

Wenn Weltruf < 0 -> Wruf = -Rf
Wenn Weltruf >= 0 -> Wruf = Weltruf

Der nächste Schritt ist der Regentenfaktor (Rf)

Rf = (Beliebtheit + Einfluss) * Wahlergebnis in %

Nun der qualitative Faktor "Der Staatsfaktor"

STf = Rf + Wruf

Ist STf > 1 dann wird nur der Nachkommawert genommen und dies + 1 (Wert z.B. 4,3 => 1,3)
Ist STf > 0 && STf < 1 dann wird STf komplett genommen (bei 0,6 also trotzdem 0,6)
Ist STf < 0 dann wird STf gleich 0 gesetzt.

Quantitative Faktoren

Dies wird komplett von Himami übernommen. Ich finde es ist sehr leicht und passt bestens.

X1 = Staatsschulden / nom. BIP
X2 = Neuverschuldung / nom. BIP
X3 = Zinszahlungen / Ges. Staatseinkommen

Punktevergabe

X1 über -30% = 5 Punkte
X1 unter -30% = 4 Punkte
X1 unter -50% = 3 Punkte
X1 unter -80% = 2 Punkt
X1 unter -100% = 1 Punkte
X1 unter -150% = 0 Punkte

X2 über 0% = 3 Punkte
X2 unter 0% = 2 Punkt
X2 unter -3% = 1 Punkte
X2 unter -6% = 0 Punkte

X3 über 0% = 5 Punkte
X3 unter 0% = 4 Punkte
X3 unter -3% = 2 Punkt
X3 unter -6% = 1 Punkte
X3 unter -8% = 0 Punkte

Jährliches Wirtschaftswachstum (X4)

Staatenklassenabhängiger Faktor (Y)

Code:
Supermacht: 2.0%
    Industriemacht: 2.2%
     Rohstoffmacht: 1.9%
     Schwellenland: 2.5%
     Industrieland: 1.9%
  Postkommunistisch: 2.3%
Fundamentalistisch: 2.6%
  Entwicklungsland: 1.3%


Formel - Berechnung X4
Wirtschaft Vorjahr >= Y => 2 Punkte
0 < Wirtschaft Vorjahr < Y => 1 Punkt
Wirtschaft Vorjahr = 0 => 0 Punkte
Wirtschaft Vorjahr < 0 => -1 Punkt

Diese Punkte werden nun Zusammengerechnet

Rating-Punkte = X1 + X2 + X3 + X4 + STf

Staatenklassenbonus

Supermacht, Industriemacht: +3 Punkte
Rohstoffmacht: +1 Punkt
Industrieland, Schwellenland: +- 0 Punkte
postkommunistisch, fundamentalistisch, Entwicklungsland: -1 Punkt

Der Bonus wird den Rating-Punkten hinzugefügt.

Vorzeichen

X1, X2, X3 und X4 werden betrachtet.

Ist die Differenz der 2 höchsten Zahlen gleich oder höher 2 => "-"
Ist die Differenz der 2 niedrigsten Zahlen gleich oder höher 2 => "+"
tritt beides ein so ergibt sich kein Vorzeichen.


Höchstmögliche Punktzahl: 16 Punkte

Code:
Rating  Punkte
AAA   = 98% - 100%
AA    = 86% - 98%
A     = 74% - 86%
BBB   = 62% - 74%
BB    = 50% - 62%
B     = 38% - 50%
CCC   = 26% - 38%
CC    = 14% - 26%
C     = 2% - 14%
D     = 0% - 2%


Code:
Rating  Punkte
AAA   = 15,68 - 16
AA    = 13,76 - 15,68
A     = 11,84 - 13,76
BBB   = 9,92 - 11,84
BB    = 8,00 - 9,92
B     = 6,08 - 8,00
CCC   = 4,16 - 6,08
CC    = 2,24 - 4,16
C     = 0,32 - 2,24
D     = 0 - 0,32


Damit Ergibt sich folgendes Rating:

Code:
Rating  Punkte
AAA   = 15 - 16
AA    = 13 - 15
A     = 11 - 13
BBB   = 9 - 11
BB    = 8 - 9
B     = 6 - 8
CCC   = 4 - 6
CC    = 2 - 4
C     = 1 - 2
D     = 0 - 1


Wer rausgeht, muss auch wieder reinkommen. - Herbert Wehner

President Benjamin Netter | Kanadische Föderation | EuFED
Donáld Atout | Verrückter Politiker aus Kanada | Canada Party
04.09.2013 23:39
Find all posts by this user Quote this message in a reply
Titian
Benevolently Watching You
*


Posts: 5,344
Words count: 554,088
Group: Basic
Joined: Nov2009
Status: Offline
Reputation: 94
Experience: 1706
Glory Points: 1364680
Medals: 5643

Post: #2
RE: Releasing my Rating Script

Wie bekommst du ganzen Staatswerte? Noplan
Ich arbeite auch gerade an ein paar Tools, aber bisher muss ich die Werte über eine externe Datenverbindung in Excel importieren, die ganzen Sonderzeichen mit String-Formeln rauseditieren und das ganze dann an eine Access-Tabelle dranhängen Pfeif


"If you grab them by their balls, their hearts and minds will follow." (Yes, Minister)

05.09.2013 01:30
Find all posts by this user Quote this message in a reply
sero
Benjamin Netter
**


Posts: 4,363
Words count: 293,320
Group: Premium
Joined: Jun2008
Status: Offline
Reputation: 123
Experience: 1480
Glory Points: 370
Medals: 22

Post: #3
RE: Releasing my Rating Script

Ja lxml erleichtert mir die Sache wirklich seeeeeeeehr. Ein Grund wieso ich das ganze mit Python und nicht mit C mache. Leicht, schnell und "relativ" einfach.

Das Problem an dieser Methode ist lediglich, dass Ars-Regendi nicht immer überall das gleiche stehen hat, d.h. in der "Tabelle" kann es sein das der Wert für X1 mal an 1. mal an 2. oder sogar an 3. Stelle steht. Ich hatte mit einem Admin über eine API schon gesprochen, welche irgendwann eingeführt wird. Damit sollte dieses Problem dann gelöst sein und das Skript ein bisschen besser laufenHehe


Wer rausgeht, muss auch wieder reinkommen. - Herbert Wehner

President Benjamin Netter | Kanadische Föderation | EuFED
Donáld Atout | Verrückter Politiker aus Kanada | Canada Party
05.09.2013 11:34
Find all posts by this user Quote this message in a reply
Post Reply  Post Thread 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  [C#] Rating Organisator sero 0 1,269 30.06.2014 13:30
Last Post: sero

View a Printable Version
Send this Thread to a Friend
Subscribe to this Thread | Add Thread to Favorites

Forum Jump: