Börsenticker

Da gab es von einem gewissen pitti auch mal ein Script :rofl:, dass die Börsenkurse und Charts | tagesschau.de abfragt und den Kurs rausfiltert. Das scheint aus der gleichen Zeit zu sein 2.1.20180319.

Das läuft bei mir schon ewig.

Genau so ist es, aber es nutzt google :rofl:

Script ist weiter oben zu finden :smiley:

Gruß HEiko

Ups, da habe ich wohl mal etwas angepasst, weil es irgendwann oder für irgendwas nicht funktioniert hat.

BASIS war
Scriptbezeichnung: Online.StockExchange.ips.php

:nerd_face:

Ich werde alt.

Das ist ja das geile an Scripten - die schnelle Möglichkeit an Individualisierung :slight_smile:
Irgendwer hat eine Idee und dann entwickelt sich daraus was ganz individuelles oder eben allgemeingültiges :slight_smile:

Gruß Heiko

1 „Gefällt mir“

Lieben Dank für das tolle Script.
So kann ich mich nun jeden Morgen und Abend freuen, wenn ich aufs Steuer ipad schaue :slight_smile:
Zumindest solange BTC weiter so steil nach oben geht :wink:

Tja, mal gewinnt man und mal … habens die Anderen. Oder so! :rofl:

Hallo Pitti,

ich habe gerade mal versucht das Börsenskript einzurichten. Die Var werden zwar angelegt, aber bleiben auf null.
meine Beispieleinträge:
grafik
ist das richtig so?

Gruß

Oliver

Hallo Oliver,

kann ich ad-hoc so nicht beantworten - zeig mal dein Objektbaum!

… ist der Timer schon mal gelaufen? Da werden dann erst die Daten versucht zu holen.

Ein normales ausführen des Skriptes legt erstmal nur die notwendigen Variablen und Timer an!

Gruß HEiko

Hallo Heiko,

Timer habe ich noch keinen angelegt, ich habe das Skript nur mehrfach manuell gestartet. Gibt es da einen Unterschied?

Gruß

Oliver

Jein, ich sehe gerade das Script legt selbständig keinen Timer an!

Leg doch einfach mal einen Timer mit Deiner gewünschten Zeiten an und schau was passiert!

Ich z.B. habe einen Timer für Mo-Fr von 9 - 18 Uhr aller 15 min angelegt …

image

Gruß Heiko

Hallo,

ich habe jetzt mal alle 1 Min. per Ereignis abgfragt, hat sich aber nichts geändert. der Array ist vom Aufbau so korrekt wie ich es angelegt habe?

Gruß

Oliver

Ja, die WKNs sind falsch - jedenfalls für Google

1.) keine Leerzeichen verwenden FRA: 514000 => FRA:514000!

2.) Deutsche Bank wäre „FRA: DBK“

Such mal Deine WKNs auf der Seite => https://www.google.com/finance/

und trag die dann ein!

Gruß HEiko

hat leider auch nichts gebracht:
grafik

immer noch alles drei auf „0“

Gruß

Oliver

Hast Du nach dem ändern des Arrays das Script nochmal ausgeführt?

Bei mir nicht =>

Gruß HEiko

wird alle 1 Minute ausgeführt

Der tatsächliche Aufruf, damit das Script die Seite parsen kann sollte ja

https://www.google.com/finance/quote/DBK:FRA

sein.

Ist das so?

Der Quellcode sieht auch komisch aus, haben sich eventuell Strukturen Inhalte bei der Google-Seite verändert?
grafik

Ich habe das Script für mich angepasst und nutze

Börsenkurse und Charts | tagesschau.de

das funktioniert bei mir noch.

Hi Ralf,

Nein, der Aufruf ist bei mir => FRA:DBK - Google Search

Das Script ist ja auch schon echt alt und für meine Aktien tut es noch. Kannst ja Deine Variante mal veröffentlichen. Vielleicht hilft es ja Oliver!

Gruß Heiko

<?
################################################################################
# BASIS war 
# Scriptbezeichnung: Online.StockExchange.ips.php
# Version:	2.1.20180319
# Author:	Heiko Wilknitz (@Pitti)
#
# Installation:
#	- WKN-Array unter Konfiguration mit den entsprechenden Werten befüllen
#	- Script in der Konsole ausführen
#
# ------------------------------ Konfiguration ---------------------------------
#
$wkn = array(
	"lu0274208692-3027744"	=> "Xtrackers MSCI World",	// Xtrackers MSCI World Swap UCITS ETF 1C
    "ie00b4x9l533-15120378" => "HSBC MSCI World",     // HSBC MSCI WORLD UETF
    "ie00b5ssqt16-97893415" => "HSBC MSCI Emer­ging Mar­kets"     // HSBC MSCI Emer­ging Mar­kets Ucits ETF
);
#
# ----------------------------------- ID´s -------------------------------------
#
#
################################################################################


if ($_IPS['SENDER'] == "Execute") {
	// ID des ArchiveHandler ermitteln 
	$instances = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}'); 
	$id_archive_handler = $instances[0]; 
	// pro WKN eine Variable
	foreach($wkn as $ident => $name) {
		$vid = CreateVariableByName($_IPS['SELF'], $name, 2 /*Float*/);
		IPS_SetInfo($vid, $ident);
		IPS_SetIcon($vid, "Graph");
		AC_SetLoggingStatus($id_archive_handler, $vid, true);
	}
}


if($_IPS['SENDER'] == "TimerEvent") {
	// alle untergeordneten Objekt einsammeln
	$ids = IPS_GetChildrenIDs($_IPS['SELF']);
	//echo print_r($ids);
	foreach ($ids as $id) {
		// for each Wertkennzeichen daten holen
		$array = IPS_GetObject($id);
		// Float-Variable?
		if ($array['ObjectType'] == 2) {
            $url = 'https://www.tagesschau.de/wirtschaft/boersenkurse/'.$array['ObjectInfo'].'/';
			$curl = curl_init();
			curl_setopt($curl, CURLOPT_URL, $url);
			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
			curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 
			curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
			$page = curl_exec($curl);
			curl_close($curl);
			$stock = GetMark($page, '<span class="price">*<span class="priceCurrency">');
			$dec = ToFloat($stock);
//			IPS_LogMessage("BOERSE", $dec);
            $old = GetValueFloat($id);
            $diff = ($old-$dec);
            If (($diff*-1) > 0) {
//                SetValue(12448, "Starke Kursabweichung! (" . IPS_GetName($_IPS['SELF']).")\n\n". $array['ObjectInfo'] . ", DIFF: " . sprintf('%0.3f', $diff) . ", ALT: " . $old . ", NEU: ". $dec);
//                SetValue(35286, 'PopMeldungen');
            }
			if (($old <> $dec) AND ($dec > 0)) {
				SetValueFloat($id, $dec);
			}
		}		
	}
}	

# ------------------------------ Funktionen ------------------------------------

function CreateVariableByName($id, $name, $type) 
{ 
   $vid = @IPS_GetVariableIDByName($name, $id); 
   if($vid===false) { 
      $vid = IPS_CreateVariable($type); 
      IPS_SetParent($vid, $id); 
      IPS_SetName($vid, $name); 
   } 
   return $vid; 
} 

function CreateEventByName($id, $name, $type) 
{ 
   $eid = @IPS_GetEventIDByName($name, $id); 
   if($eid===false) { 
      $eid = IPS_CreateEvent($type); 
      IPS_SetParent($eid, $id); 
      IPS_SetName($eid, $name); 
   } 
   return $eid; 
}

// Diese Funktion trennt die relevanten Bereiche aus dem Ausschnitt heraus 
// $string ist dabei der zu durchsuchende Gesamtstring, 
// in $Mark sind durch "*" getrennt der Beginn des zu suchenden Strings  
// und das Ende des zu suchende Abschnittes. 
// Beispiel für den Text "<div>*</div></li>" 
function GetMark($string, $mark) { 
	$find = explode("*",$mark); 
	$lens  = strlen($find[0]);
	$lene  = strlen($find[1]); 
	$start = strpos($string, $find[0]); 
	$stop  = strpos($string, $find[1], $start+$lens);
	$inner = substr($string, $start+$lens, $stop-$start-$lens);
	return $inner; 
} 

// Umwandlung einer Zahlenrepräsentations als String in eine echte Gleitkommazahl
function ToFloat($str) {
  if(strstr($str, ",")) { 
    $str = str_replace(".", "", $str); // replace dots (thousand seps) with blancs 
    $str = str_replace(",", ".", $str); // replace ',' with '.' 
  } 
  return $str; // take some last chances with floatval 
}

Die DBK müsste z.B.
https://www.tagesschau.de/wirtschaft/boersenkurse/**deutsche-bank-aktie-514000**/
der Teil für das Array sein.

2 „Gefällt mir“

Cool - super. Danke! Kann man irgendwie die Börse mit übergeben/vorauswählen?

Also anstatt Xetra => Frankfurt?

Super, damit hab ich Werte bekommen, danke Euch