Las opciones son un tipo de valores que despiertan un interés constante incluso entre los traders novatos. Se han escrito muchos artículos sobre opciones, por lo que omitiremos la parte introductoria y asumiremos que el lector está familiarizado con los términos básicos del comercio de opciones. En todo caso, su interpretación es fácil de encontrar en Internet.
Después del primer conocimiento de la teoría, los operadores novatos en opciones tienen una pregunta: bajo qué condiciones este conjunto de opciones dará ganancias y de qué tipo. Incluso un operador de opciones experimentado no puede responder inmediatamente a esta pregunta si tiene más de una opción. Esto requiere un análisis de la cartera de opciones (un conjunto de opciones y, posiblemente, futuros), que se hace más claramente en forma gráfica, en el diagrama de la dependencia de la ganancia / pérdida del valor del activo subyacente. Actualmente, existen varios sitios para esto, así como programas individuales.
El autor del artículo ha implementado el análisis de opciones mediante un bot de telegrama , lo que permite obtener rápidamente información sobre la cartera de inversiones en un teléfono inteligente.
Asumiremos que, además de las opciones, el lector está familiarizado con los bots de telegram. Por lo tanto, no habrá descripción de cómo crear un bot desde que recibe un token hasta que procesa el teclado. En cambio, enumeramos los problemas conceptuales que surgieron durante la creación del programa y cómo resolverlos.
Recordando el estado del bot entre webhooks
El bot recibe mensajes del usuario a través del mecanismo de webhook integrado en el telegrama. Cada webhook reinicia el programa, pero cada usuario necesita un conjunto de datos diferente. Los usuarios se identifican al ver el flujo de entrada:
$id_init = file_get_contents('php://input');
$id=sbs($id_init, '"from":{"id":',',"is_bot":'); //
function sbs ($str,$m1,$m2){ // str - m1 m2
$p1=strpos($str,$m1)+strlen($m1); // -
$p2=strpos($str,$m2);
return substr($str,$p1,$p2-$p1);
}
La siguiente estructura de datos se crea para cada usuario:
: – , , ( message_Id) , ( , ..),
( , , , , )
.
, y=kx+b,
y – /
–
png GD :
1) - (, )
2) ( , , Y)
3) , X , Y – , :
$typ – ,
$q – ( )
$cena –
$strike –
$x0 –
$sx –
function pparr($typ, $q, $cena, $strike,$x0,$sx){ // - x=>y
// , ( ), ( )
if ($q<0) { $q=-$q;
$drct='-';
}
else $drct='+';
$a=array();
$b=array();
$delta=$sx; // $scalx
for ($i=0;$i<740;$i++){ // 740
$xkk=$x0+$delta*$i; // X
if ($typ=='fut') {
if ($drct=='+') $a[$xkk]=($xkk-$cena)*$q;
else $a[$xkk]=(-$xkk+$cena)*$q;
}
if ($typ=='call'){
if ($drct=='+') { if ($xkk<=$strike) $a[$xkk]=-$cena*$q; else $a[$xkk]=$q*($xkk-$strike-$cena);}
else { if ($xkk<=$strike) $a[$xkk]=$q*$cena; else $a[$xkk]=(-$xkk+$strike+$cena)*$q;}
}
if ($typ=='put'){
if ($drct=='+') { if ($xkk<=$strike) $a[$xkk]=(-$xkk+$strike-$cena)*$q; else $a[$xkk]=-$q*$cena;}
else { if ($xkk<=$strike) $a[$xkk]=($xkk-$strike+$cena)*$q; else $a[$xkk]=$cena*$q;}
}
$b[(string)$xkk]=(string)$a[$xkk];
}
return $b;
};
4) , ( ) ( ). , know-how , / Y. - X+,X-,Y+,Y- . , .
. . – , . , , (). , , , , ( , ). , . ( - ) , . , ( , , ) () . . , -, , .
- , .
, :
=+(-_)*;
_ ,
– , , , ,
– , , , ,
, , . , , , .
- : , , , . , , . .
:
=23.
: ( ) [] 03.06.2021 75000 , 23 . 75023 , .
: 23. , , 23.
– .
.
= 5436.
, 72750 44. 72706 . .
– , 72706. ! (5436), .
? 5436 44? , . , 3 .
.
?
!
– – , 72700 ( «») 75190 ( «»).
, .
, 72700 75190, , .
-
:
«», , ( )
, , png,
, , : « », « », « »
«» InlineKeyboard.
:
«-» , ,
«» . ,
.
.
, « »( , ).
- . , : (Si), (BR), (RI). .
- , .
- / (P/L ).
- t.me/@test09062020bot. « ».