Les options sont un type de titres qui suscitent un intĂ©rĂȘt constant mĂȘme parmi les traders dĂ©butants. De nombreux articles ont Ă©tĂ© Ă©crits sur les options, nous allons donc omettre la partie introductive et supposer que le lecteur est familiarisĂ© avec les termes de base du trading d'options. Si quoi que ce soit, alors leur interprĂ©tation est facile Ă trouver sur Internet.
AprĂšs la premiĂšre connaissance de la thĂ©orie, les traders dĂ©butants en options se posent une question: dans quelles conditions cet ensemble d'options rapportera-t-il un profit et de quelle nature. MĂȘme un trader d'options expĂ©rimentĂ© ne peut pas rĂ©pondre immĂ©diatement Ă cette question si vous avez plus d'une option. Cela nĂ©cessite une analyse du portefeuille d'options (un ensemble d'options et, Ă©ventuellement, des futures), qui se fait le plus clairement sous forme graphique, sur le diagramme de la dĂ©pendance du rĂ©sultat Ă la valeur de l'actif sous-jacent. Actuellement, il existe plusieurs sites pour cela, ainsi que des programmes individuels.
L'auteur de l'article a mis en place l'analyse des options à l'aide d'un télégramme bot , qui permet d'obtenir rapidement des informations sur le portefeuille d'investissement sur un smartphone.
Nous supposerons qu'en plus des options, le lecteur est familiarisé avec les robots télégrammes. Par conséquent, il n'y aura aucune description de la création d'un bot depuis la réception d'un jeton jusqu'au traitement du clavier. Au lieu de cela, nous énumérons les problÚmes conceptuels qui se sont posés lors de la création du programme et comment les résoudre.
Se souvenir de l'état du bot entre les webhooks
Le bot reçoit des messages de l'utilisateur via le mécanisme de webhook intégré au télégramme. Chaque webhook redémarre le programme, mais chaque utilisateur a besoin d'un ensemble de données différent. Les utilisateurs sont identifiés en visualisant le flux d'entrée :
$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 structure de données suivante est construite pour chaque utilisateur :
: â , , ( 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. « ».