Tiramisu

Written by pmd - - no comments

Recettes pour 4 personnes :

  • 100 g de sucre roux blanc
  • 1 sachet de sucre vanillé
  • 24 biscuits à la cuillère
  • 3 oeufs
  • 250 g de mascarpone
  • 50 cl de café noir non sucré
  • 30 g de cacao amer

NB: il y a bien de l'alcool dans le tiramisu mais il s'agit de Marsala sec (ni aux oeufs, ni à l'amande) mélangé au café très fort.

Préparation : 15 min
Repos : 4 h
Cuisson: N/A

Etapes :

  1. Séparer les blancs des jaunes d'oeufs.
  2. Mélanger les jaunes avec le sucre roux et le sucre vanillé.
  3. Ajouter le mascarpone au fouet.
  4. Monter les blancs en neige et les incorporer délicatement à la spatule au mélange précédent. Réserver.
  5. Mouiller les biscuits dans le café rapidement avant d'en tapisser le fond du plat.
  6. Recouvrir d'une couche de crème au mascarpone puis répéter l'opération en alternant couche de biscuits et couche de crème en terminant par cette dernière.
  7. Saupoudrer de cacao.
  8. Mettre au réfrigérateur 4 heures minimum puis déguster frais.

Source : Tiramisu (recette originale)

Get Rich with dropshipping

Written by pmd - - no comments

Hey bro, how are you?

Please see my recommendations for dropshipping:

  1. Start with fundamentals - COMPLETE Shopify Tutorial For Beginners 2021 - How To Create A Profitable Shopify Store From Scratch
  2. Join Facebook e-commerce forum - https://www.facebook.com/groups/dropshippinggurus/?ref=share

This is how have I learned everything about dropshipping. Ask lots of questions and read comments.

  1. Start in parallel to build shopify store and learn how to create campaigns and target audience and sell.

Once you go through basic - it can take 2 months, we can catch up and will explain you most advance strategies


COMPLETE Shopify Tutorial For Beginners 2021 - How To Create A Profitable Shopify Store From Scratch

https://www.shopify.com/

Le type conseil avant tout de créer une marque tout en faisant du dropshiping.

How to find the perfect product :

  1. WOW factor
  2. Great quality and great/new design
  3. Can be found on Aliexpress or Alibaba
  4. Passionate niche/target market

Best niches for dropshiping

Luxury accessories
Camping
Hiking
Survival
Gardening
Eco-friendly products
Golf
Tennis
Football/soccer
CookingKitchen
Outdoor Patio/Lawn/Garden
Beauty
Jewelry
Clothing
Automotive Accessories

Tools to find the perfect product

Go on social media and scroll. Check all ads. You can remove proper status and keep only ads : Turbo Ad Finder.

You can analyse traffic of shopify sites with Alexa Traffic Rank. Si le site est bien classé tu peux être sur qu'ils font des thunes.

Un autre site, ou tu peux voir quel ads sont payé par un site en particulier : http://facebook.com/ads/library. Si beaucoup de pub, probablement ils font des thunes.

https://ecomhunt.com/ : 20 ou 30USD  a month. Pour trouver les produits récents qui sont les plus vendu.

Finding a great dropshiping supplier

Il déconseille d'aller sur Aliexpress. Favoriser Alibaba. Il faut éviter les brokers et toujours essayer de trouver l'usine.

Toujours contacter 3 à 5 fournisseur minimum pour avoir une référence sur le prix.

Sur Alibaba c'est possible de contacter les vendeurs. Quand on les contacte, faire style qu'on va acheter/vendre beaucoup (genre 1000 pièces). Voir un template ci-dessous.

Toujours préviligier les vendeurs "verified" qui ont plus de 2 ans d'existance.

Shopify Freedom Supplier Template

Hello, my name is Name and I’m the Lead Purchasing Agent of Company Name.

I was looking at your store and I am very interested in creating a long-term business relationship with your company.

Our store specializes in selling Category of Products and we are currently selling #### orders per day and I believe that we can increase our sales by creating a long-term and beneficial working relationship with your company.

Before proceeding, we have a few questions we were hoping you could answer:
1. Do you offer Blind Drop Shipping - or without sending an invoice and any associated marketing materials including in or on the packaging.
2. Do you offer Bulk Drop Shipping - our store’s current selling volume is too large to place orders individually.
3. Do you have a MOQ (Minimum Order Quantity) required for any of your products?
4. Are you able to send an invoice for the whole bulk dropshipping order at once on Alipay?
5. Are you able to apply my company’s logo on the products?

Our company would like to send you an Excel Spreadsheet (CSV) file with each customer’s information (full name, email, address, product, etc.) and have you process each order individually by sending each customer their appropriate product.

You would then send our company a full invoice for the whole bulk dropshipping order, which we would gladly pay via Paypal/Alipay.

Please let us know if you are interested in forming this mutually beneficial, long-term business relationship with us.

Also, please add us on WhatsApp and send us a message there promptly
-> WhatsApp Number

We look forward to doing business with you for many years to come.
Sincerely, Company Name

Setting up our Shopify Store

https://www.shopify.com/ > Start Free Trial

Si on a pas encore de nom de domaine pour le site/les mails, en créer un sur gmail.com en attendant d'avoir le NDD. Dans tous les cas obligatoire, sinon ca fait pas pro.

Pour vérifier la disponibilité d'un NDD (nom de domaine en gros c'est ce qui est entre "www." et ".com") : https://domains.google/

Sur shopify ne pas dire qu'on vend beaucoup sinon ils vont nous appeler.

Il conseille d'avoir une structure et d'y mettre son adresse dans Shopify.

Il donne des exemples de theme : "Debut theme", "Minimal theme", "Pop theme", "Jumpstart"

Good paid one : "Launch theme"

Pour le logo, on peut aller sur canva.com et faire un truc archi simple à base de texte et d'emoji. Sinon avec des freelance on peut faire des trucs. https://www.fiverr.com/ https://www.upwork.com/ https://5euros.com/

Acheter un exemplaire des produits, avec notre logo dessus au fournisseur. Ca va couter un peu, mais c'est obliger. Puis faire des photos sur fond blanc, et des photos en utilisation.

Il y a un app store sur shopify. Bien sur la plupart sont payant. Il donne une liste:

  • Order lookup
  • HelpCenter
  • Loox - Photo reviews
  • SMSBump
  • Klaviyo: Marketing automation
  • Recart FB Messenger Marketing
  • Zipify
  • Bold Multi-Cerrency
  • Easy Location
  • Discounted Upsells
  • Easy contact form

Si on voit une app pas mal sur un site shopify, on peut regarder le code source de la page (CTRL+U) et chercher le mot clé "apps".

Un site qui fait beaucoup de thune https://blendjet.com/, ca peut donner des idées.

Domain Name

Voir namecheap.com et "GoDaddy domain name"

Google Analytics + Facebook pixel

Il faut setup pour avoir pas mal d'info plus tard. Facebook pixel interressant pour quand t'achetes de la pub.

Il faut activer les paiements sur shopify + paypal business aussi.

Clairement beaucoup de chose à faire, genre shipping cost zone par zone, mais j'ai pas noté.

Email Marketing et assimilés

ESSENTIAL TO A PROFITABLE SHOPIFY STORE.

Pour tous les business il y a le front end et le back end. La plupart des vente vient du back end. Plus simple de revendre au vendre a des anciens clients qu'a des anciens clients.

=> Il faut bien configurer Klaviyo. Par exemple le client a cliqué sur check out, mais n'a pas acheté ca peut envoyer des mails de rappel avec extra discount.

=> Il faut bien configurer SMSBump. Ca envoie des SMS de rappel avec extra discount.

=> Il faut bien configurer Recart. Ca envoie des messages sur FB.

Petit speech aussi sur Oberlo. Mais il déconseille car impossible de faire du "branded dropshipping".

Running paid ads

1- Facebook, 2- Instagram, 3- Google PPC, 4- Youtube ads and many more (pinterest, bing).

business.facebook.com

Pour trouver ce que les gens like : Main Menu > Audience Insights.

Big 4 : USA, UK, Canada, Australia.

Puis avec une recherche sur centre d'interet. On trouve que les gens like, puis on peut les cibler.

Rappel : pour voir ce qui existe http://facebook.com/ads/library

Il conseille de commencer par "engagement ads" pour obtenir "social proof" avant de faire des campagnes pour convertir à l'achat. En ensuite "Conversion" ads.

ads.google.com, il y a aussi google shoping

Instagram Infuencers

Peut être mieux de commencer par les influenceurs si on n'a que 200-300 USD pour faire de la pub. Les bons influenceurs ont entre 10K et 100K de suiveurs, les meilleurs ont entre 100K et 250K. Forcément ils sont payant.

L'idée c'est on leur envoie le produit, et ils font une vidéo. Pour les contacter, message en direct. Et supprimer si non lu/répondu.

Pour ça il faut déjà avoir quelques like, une page facebook qui a like d'autre page, etc. Cold audience.

Il y a aussi les micro-influenceurs entre 1K et 10K : on envoie le produit gratos. Et leurs potes like/achètent.

Conclusion

Dans tous les cas ça va pas être facile de créer un vrai business.

Pourquoi les gens ratent. Car il faut :

  • Agir
  • Ne pas baisser les bras. 99% des gens baissent les bras après 3 échecs...
  • Produit ne se vend pas ?
    • "Your funnel is only as good as your weakest link".
    • Donc il faut trouver le maillon faible : prix, photos, page de vente
    • Imiter les stratégies de la concurence, et s'améliorer
    • Si on trouve rien, ouvrir un autre shop. Mais vraiment essayer au moins 2-3 mois.
  • Se concentrer sur le back-end (avec les appli de relance via mail/SMS/Facebook)
  • Rester à jour, toujours apprendre, plein de manière d'apprendre gratuitement youtube, google, livres, etc

Personal Mentorship of course il peut nous aider pour checker le shop.


Mettre en relation mon site Shopify avec OVH

Pourquoi et comment bien gérer ses mots de passe ? - Assistance aux victimes de cybermalveillance

GitHub - pglombardo/PasswordPusher: Password Pusher is an application to securely communicate passwords over the web. Passwords automatically expire after a certain number of views and/or time has passed.

KeePass: the free, open source, light-weight and easy-to-use password manager.


Ce que j'ai fait :

  1. Télécharger KeePass version portable et configuration
  2. Création compte GMAIL avec mot de passe généré et stocké dans le KeePass
  3. Création page FACEBOOK
  4. Création compte OVH et achat du nom de domaine sur ovh.com
  5. Création de logo rapide avec Free Logo Maker: Design Custom Logos | Adobe Spark
  6.  

Get Rich with Options: Four Winning Strategies Straight from the Exchange Floor

Written by pmd - - no comments

Mes notes sur ce livre.


PART ONE: THE OPTIONS BASICS


CHAPTER #1: IT’S ALL ABOUT THE CALLS AND PUTS

C'est très simple, il y a deux types d'options : CALL et PUT. On peut vendre des options aussi simplement qu'en acheter. On va voir des stratégies ou on va être vendeur, d'autre ou on va être acheteur.

Le but principale d'acheter des options, c'est pour l'effet de levier. On peut prendre position en utilisant moins de capital. Mais il faut savoir choisir son options correctement.

🔶 OPTION BUYERS HAVE RIGHTS; OPTION SELLERS HAVE OBLIGATIONS

L'acheteur d'une option CALL s'attend à ce que le sous-jacent prenne de la valeur. L'acheteur d'un CALL a droit de controler une position haussière de 100 actions (dans le cas d'option sur action) pendant un certain temps, à un certain niveau de STRIKE (le prix auquel on achetera les actions).

L'acheteur paye une commission (premium) au vendeur, pour avoir le droit d'acheter 100 actions au prix du STRIKE.

A maturité, l'acheteur n'est pas obligé d'exercer l'option (=acheter les 100 actions) si non profitable.

L'acheteur d'une option peut perdre le premium, mais pas plus. Par contre les gains sont possiblement illimités.

L'acheteur d'une option PUT s'attend à ce que le sous-jacent perde de la valeur. L'acheteur d'un PUT a donc le droit de controler une position baissière de 100 actions pendant un certain temps, L'acheteur d'un PUT peut perdre tout son premium, mais les gains sont virtuellement illimités.

Le vendeur d'une option a l'obligation de respecter le contrat si jamais l'acheteur exerce l'option. Le vendeur d'option a un gain limité au premium payé par l'acheteur, et la perte peut être virtuellement illimitée !

26/08/2021 DISCK

🔶 PROBABILITY IS THE KEY

Pourquoi quelqu'un voudrait-il vendre une option alors que les pertes sont possiblement illimitées ??? La raison pour laquelle vendre des options est une stratégie très utile, c'est les probabilités.Le trading d'option se base sur les probabilités et sur les statistiques. Il faut acheter les options qui ont de grande chance de bien se terminer.

🔶 AN OPTION EXAMPLE

🔶 THE PROFIT/LOSS SCENARIO

🔶 STOCK PRICE AND STRIKE PRICE RELATIONSHIP

Il faut comprendre la relation entre le STRIKE qu'on choisi et le prix du sous-jacent. Il y a 3 termes pour ça:

  1. in-the-money (ITM)
  2. at-the-money (ATM)
  3. out-of-the-money (OTM)
Pour une option CALL :
  • Si le STRIKE > prix du sous-jacent alors l'option CALL est OTM
  • Si le STRIKE = prix du sous-jacent alors l'option CALL est ATM
  • Si le STRIKE < prix du sous-jacent alors l'option CALL est ITM
Pour une option PUT :
  • Si le STRIKE < prix du sous-jacent alors l'option PUT est OTM
  • Si le STRIKE = prix du sous-jacent alors l'option PUT est ATM
  • Si le STRIKE > prix du sous-jacent alors l'option PUT est ITM

🔶 SUMMARY


CHAPTER #2: HOW OPTIONS ARE PRICED

Le prix de l'option (=premium) dépend de différents facteurs:

  • Valeur intrinsèque:
    • Prix du sous-jacent
    • Prix du STRIKE de l'option
  • Valeur extrinsèque:
    • jours restant jusqu'à expiration de l'option
    • volatilité (historique et/ou impllicite)
    • taux d'intérêt
    • dividendes (pour les "stock options" seulement)

Toutes ces informations sont très simple à trouver et à mettre dans une calculette pour option, sauf la volatilité.

Toutes les options OTM et ATN n'ont pas de valeur intrinsèque. Seulement extrinsèque. Comment on sait ça ? Si on excerce une option ATM ou OTM, on perdrait de l'argent.

🔶 ANATOMY OF A PREMIUM

On va regarder comment le prix de l'option est calculé avec ces 6 informations.
Il propose cette calculette dans le livre : https://www.ivolatility.com/adv_calc/calc.j?frm


IBKR aussi a une calculette : https://www.interactivebrokers.com/en/index.php?f=25272

La valeur calculée n'est pas toujours la même que sur les marchés, et c'est souvent du à la volatilité.

🔶 GOT MOVEMENT?

On peut voir dans l'image ci-dessus que sous le prix de l'option, il y a les grecs. Toutes sont très utiles mais pour nous, seulement DELTA et THETA. Ce sont des indicateurs clés dans les stratégies qu'il va nous présenter par la suite.

DELTA est entre 0 et 1. Si une option a un delta de 60%, alors lorsque le sous-jacent gagne ou perd 1 USD, l'option gagne ou perd 0.60 USD. La question qu'on se pose c'est "Est-ce que la valeur de l'option va bien varier dans les mêmes proportions que le sous-jacent ?".

🔶 SUMMARY


CHAPTER #3: OPTION VOLATILITY

🔶 WHAT IS VOLATILITY?

C'est une mesure statistique qui montre à quel point le prix du sous-jacent est erratique et à quel point ça pourrait être erratique dans le future. Deux composantes :

  • Historical Volatility (HV) : mesure de volatilité dans le passé
  • Implied Volatility (IV) : dans le futur, et elle peut être affecté par un discours prévu de la FED, ou tout autres annonces genre Earnings report, voir même la météo...

🔶 USING VOLATILITY TO YOUR ADVANTAGE

La volatité peut donc être cher ou pas cher. Il faut regarder des graphiques de volatilité. En effet une option sera moins chere si la volatilité est basse. Donc toujours regarder un graph de volatilité pour savoir ou on se situe. Si faible volatilité, plutot acheter les options, si forte volatilité, plutot vendre des options.

🔶 TWO STOCKS, DIFFERENT VOLATILITY

Il donne un exemple. Deux actions au même prix. Il prend le même STRIKE, la même maturité. Les taux d'intérêt sont forcément les mêmes. Le dividende n'a que peu d'impact.

L'option ayant le sous-jacent avec la plus grande volatilité est plus cher.

🔶 THE SKEW FACTOR

Quand on trade des "options spread". En gros c'est l'achat et la vente en simultané en une transaction de deux options.

Quand il trade un option spread il essaye d'acheter ATM et de vendre OTM.

En vrai c'est pas clair, il faut que je relise cette partie au calme.

On peut trade des option spread pour utiliser la volatilité à notre avantage.

🔶 EARNINGS DUD?

Juste avant que la société présente ces Earnings, forcément la volatilité explose. Et implose juste après l'annonce (l'incertitude a disparu). Du coup le prix de l'option peut baisser considérablement.

🔶 SUMMARY


CHAPTER #4: STOCKS VERSUS OPTIONS

🔶 WHAT DO WE DO?

🔶 THE DELTA FACTOR

🔶 SUMMARY

Ce Chapitre nous a montré comment immobiliser considérablement moins de fond, mais tout en captant les mêmes mouvements que le sous jacent : il faut acheter des options CALL, deep-in-the-money, avec un DELTA proche de 1.


CHAPTER #5: OPTION SELLING IS YOUR KEY TO SUCCESS

Ce chapitre est le précurseur de tous les chapitre suivant qui vont présenter des stratégie de vente d'option. En vendant des options, on va pouvoir être profitable même si on s'est trompé sur la direction du sous-jacent.

L'ennemi majeur de l'acheteur d'option et le temps jusqu'à expiration de l'option qui diminue. Parmis les Grec, il y a le THETA. Il nous donne la valeur que va perdre l'option par jour. On peut rien faire contre la perte de la valeur temps.

26/08/2021 DISCK

Que le sous-jacent perde ou gagne de la valeur, la valeur temps perdra de la valeur, jour après jour.

🔶 HOW TO BATTLE TIME DECAY

Est-ce qu'on peut contourner ça ? Absolument.

Il faut toujour acheter des option CALL DITM. Ces options ont une valeur intrinsèque donc, elles sont moins impactées par la valeur temps.

Dans ce chapitre il va comparer l'achat et la vente d'options.

🔶 PROBABILITIES

Il faut se souvenir que les options c'est des probabilités. On peut savoir à l'avance quelles sont nos chances d'être profitable.

Le seul moyen d'être profitable en achetant une option, c'est si le sous-jacent évolue tel qu'espéré. C'est le seul moyen. Alors qu'en vendant des options il y a 3 moyens d'être profitable : si le marché monte, baisse, ou reste plat.

Il nous montre un exemple ou l'acheteur de CALL a 10% de chance d'être profitable. Le vendeur de CALL a donc 90% d'être profitable.

Son conseil pour les acheteur de CALL : ne pas garder l'option jusqu'à expiration, la vendre avant, et prendre les profits. Le temps joue contre eux.

🔶 OPTION SELLING PREREQUISITE

Vendre des options OTM nous donne un bon coussin sur les mouvement du sous-jacent, mais il faut quand même avoir une idée de la direction que va prendre le sous-jacent.

Comment fait on de l'argent en vendant des options ? En récoltant le premium de la part de l'acheteur. Ensuite, le vendeur espère que l'option expirera sans valeur (perte de la valeur temps). Les gains maximum pour un vendeur, c'est ce qu'il recoit de la part de l'acheteur.


PART TWO: THE STRATEGIES


CHAPTER #6: BUY ALL THE STOCKS YOU WANT FOR HALF THE PRICE

🔵 WHY PAY $2,289 FOR SOMETHING WHEN YOU CAN BUY IT FOR $1,120?

La seule stratégie ou il fait des achats d'options.

Une stratégie qui va interresser ceux qui achètent des actions pour le long terme (type buy and hold). Bullish sur une action. 

Cette stratégie doit nous permettre d'investir moins de cash au début, reduire le risque de perte (caper la perte) mais tout en profitant des mouvements actif sous-jacent (comme si on le possedait).

La stratégie : acheter des options call deep-in-the-money (DITM)

Bénifices : on profite des mêmes mouvements que le sous-jacent, qui si on l'avait acheté, mais on risque jusqu'à deux fois moins d'argent. Lorsqu'on achete une action c'est pour faire une plus-value, pourquoi pas prendre la même plus value mais en investissant moins. Et pendant ce temps la on peut investir ailleur !

🔵 MOVEMENT IS THE KEY

Quand on achète une action, on veut que l'action monte. On va utiliser la stratégie DITM pour capter les mêmes mouvements mais en investissant moins.

26/08/2021 DISCK

Si on voulait acheter du DISCK, on aurait donc deux choix:

  • Acheter 100 x DISCK = 100 x 26.98 = 2698 USD
  • Acheter un call DITM = 100 x 12.20 = 1220 USD (soit -55% par rapport à l'achat en direct) (cf. première ligne du tableau ci-dessus)

🔵 DELTA IS YOUR WEAPON + DELTA IN ACTION

La beauté des options c'est le levier que ça nous procure. On paye le premium de l'option, et on controle 100 actions mais pour moins d'argent immobilisé. Mais il faut faire bien attention à capter tous les mouvements du sous-jacent !

Il faut regarder la colonne "DELTA". Cette colonne, en pourcentage, nous indique à quel point le prix de l'option va bouger en conjonction avec le prix du sous-jacent. Dans l'image du dessus, on voit DELTA = 0.977, c'est à dire que si DISCK augmente de 1USD, l'option va monter de 0.997USD. Si DISCK baisse de 1USD, l'option va baisser de 0.997USD.

En achetant une option CALL DITM ayant un DELTA > 0.90 alors il y a 4 avantages à acheter l'option plutôt que l'action:

  1. On investit moins d'argent : 1220USD au lieu de 2698USD
  2. On risque moins : 1220USD au lieu de 2698USD
  3. On récupère presque 90%+ du mouvement du sous-jacent
  4. Meilleur retour sur investissement (ROI)

26/08/2021 DISCK
Image source

CALL DITM is king !

🔵 CHOOSING THE STRIKE PRICE

Quel STRIKE doit on choisir ?

Si les fonds le permettent, toujours prendre le STRIKE le plus faible (the deepest-in-the-money) avec un DELTA > 90%. Il faut prendre en compte le coût, le prix d'équilibre (ni gain, ni perte) et le facteur DELTA.

🔵 A REFRESHER

Juste pour être bien sur : qu'est ce que ça nous fait d'acheter ce CALL DISCK à 12.20 USD ?

Cela nous permet d'avoir un contrat pour acheter à 15 USD (=STRIKE) n'importe quand jusqu'à ce que l'option expire (ici 17/12/2021) quelque soit le prix de DISCK.

Du coup le PRU sera in fine : OPTION PREMIUM + OPTION STRIKE = 12.20 + 15 = 27.20 USD

🔵 THE PROBABILITIES

Lors d'un achat d'action la probablité de gain est de 50% et de perte de 50%. Ce n'est pas le cas pour les options. Il faut que je trouve un Probability Calculator.

Celui du livre : https://www.ivolatility.com/custom/pbc2/

🔵 BUYING THE WHOLE MARKET

Il y a des options sur ETF genre SPY.

🔵 AN ADDED BENEFIT

Avec l'argent économisé, on peut acheter d'autre CALL/ACTION/OBLIGATION.

🔵 EXPIRATION ACTION?

Il y a 4 possibilités:

  1. L'option expire sans valeur = on a perdu 100% de l'investissement
  2. On peut vendre l'option quand on veut
  3. On peut rouler l'option à une date ulterieure. C'est à dire vendre cette option et en racheter une autre à maturité plus éloignée.
  4. On peut exercer notre droit d'acheter 100 actions au prix du STRIKE => 100 x STRIKE = 100 x 15 = 1500 USD

🔵 RISK MANAGEMENT

On peut vendre et acheter des options tout le temps, donc à nous de voir pour vendre le CALL si l'option a perdu trop de valeur pour nous.

🔵 DRAWBACKS?

Pas vraiment de points faibles, mais lorsqu'on a une option, on touche pas les dividendes, on n'a pas les droits de vote. Aussi les options expirent donc il faut s'en occuper.

🔵 SUMMARY

DEUX choses auxquelles il faut se tenir lorsqu'on veut initier une position d'achat d'option CALL DITM :

  1. Toujours prendre le STRIKE le plus faible ( deepest-in-the-money)
  2. Toujours choisir une option dont le DELTA > 90%

CHAPTER #7: GETTING PAID TO BUY YOUR FAVORITE STOCK

Ca vous est déjà arriver de mettre des ordres "épuisette" pour espérer acheter une action moins cher ? Avec cette stratégie on va être payer pour notre attente.

🟠 THE STRATEGY

La stratégie : vendre des NAKED PUT

On va pouvoir gagner de l'argent passivement (les premium), tout en ayant la possibilité d'acheter nos actions moins cheres (au prix du strike).

🟠 HOW DOES IT WORK?

Avant toute chose : NE PAS VENDRE DE NAKED PUT SUR UN SOUS-JACENT QU'ON NE VEUT PAS AVOIR EN PORTEFEUILLE.

Autrement dit, on va appliquer cette stratégie sur des actions de qualité exclusivement. Reprenons notre exemple du chapitre précédent. Mais cette fois on regarde à droite:

26/08/2021 DISCK

On pourrait vendre un NAKED PUT au STRIKE 22.5 USD pour le prix de 0.80 USD / contrat. Pour 100 contrat, on recevrait de la part de l'acheteur 0.80 x 100 = 80 USD pour pouvoir acheter 100 DISCK à 22.5 USD si jamais le prix devait tomber sous les 22.5 USD. Si ça ne passe pas sous les 22.5 USD avant l'expiration de l'option, on garde le premium, sinon on doit acheter 100 DISCK à 22.5 = 2250 USD. Si cela se produisait le PRU serait 22.50 - 0.80 = 21.70 USD.

🟠 WHAT HAPPENS WHEN YOU SELL NAKED PUT OPTIONS?

Quand on vend une option NAKED PUT, on signe un contrat nous obligeant à acheter 100 actions à n'importe quel moment avant l'expiration de l'option dès que l'acheteur le décide.

Le risque étant qu'au moment de la transaction, on pourrait être amener à payer plus cher pour 100 DISCK que si on les achetait au prix du marché. Et si la société faisait faillite alors que l'option est toujours valide, on acheterait 100 DISCK à 22.50 USD alors que ça vaut 0.

C'est pour ça qu'il faut appliquer cette stratégie uniquement sur des sous-jacents qu'on veut avoir en portefeuille.

🟠 HOW DO WE GET OUR SHARES?

Si DISCK termine sous les 22.50, et l'acheteur décide d'exercer son droit, nous serons donc assigné de 100 actions DISCK au prix de 22.50 par action. Soit 2250 USD. Nous devons donc avoir 2250 USD disponible sur notre compte.

🟠 WHY DON’T WE GET OUR SHARES?

SI jamais DISCK n'est pas sous les 22.50, on va garder le premium encaissé, mais on ne pourra pas acheter les 100 DSICK à 22.50. Mais on a encaissé 80 USD. On peut maintenant répeter l'opération.

🟠 PICKING A DIFFERENT STRIKE PRICE

On peut vendre une option dont le STRIKE est plus faible, mais dans ce cas nous recevrons un premium plus faible de la part de l'acheteur.

On peut vendre une option dont le STRIKE est plus haut, nous recevrons un premium plus important, mais on a aussi plus de chance de se faire assigner 100 DISCK.

🟠 DON’T FOCUS SOLELY ON THE OPTION PREMIUM

Only sell naked put options on stocks you want to own for the long term!

🟠 A FEW REQUIREMENTS

Il faut un compte margin pour vendre des options (sinon on devrait laisser trop de cash dormir sur le compte pour rien), et passer le test du boker.

🟠 MARGIN REQUIREMENTS

Une fois que le NAKED PUT est vendu, le broker va nous demander de garder suffisament de cash: "margin requirement". Le broker pourra se retourner au cas ou la position devenait dangereuse. Souvent la marge requise est calculé comme ça : (.15 x $22.5) x ($.80) x 100 = $270 au lieu des $2250.

🟠 PUT SELLING ON THE DOWNDRAFT

En bref, on se fait payer pour acheter des actions. Forcément, le premium est plus élevé lorsque la volatilité augmente. Il faut regarder le prix de la commission du broker lors de la vente de put, pour être sur d'être gagnant vs. le premium...

🟠 TOUGH TIMES IN 2008

Lors d'une crise, beaucoup de gens souffre, mais il y a beaucoup d'affaire qui se présente : les actions perdent énormément de valeur et la volatilité explose ! Donc des premium qui sont plus interressant et des actions qui n'ont jamais été aussi peu valorisé depuis 5, 10 ans voir plus !

🟠 RISK MANAGEMENT

Encore une fois il est bon de le rappeler : ne pas vendre des NAKED PUT d'action juste pour collecter le premium ! Seulement si vous avez bien compris le risque et que vous voulez ces actions en portefeuille ! Ne vous faites pas avoir, ça fait très mal !

🟠 WRAPUP

Mettre des ordres épuisette pour acheter des action moins cher n'est pas une bonne facon d'utiliser notre temps.

Qu'on soit assigné ou pas, on garde le premium.

Vendre des options va nous permettre de compenser de large perte de valorisation d'action et eventuellement pouvoir acheter des actions de qualité a un prix historiquement bas.


CHAPTER #8: OPTION CREDIT SPREADS: THE ALL-STAR STRATEGY

C'est la stratégie qu'il utilise le plus souvent. Ca donne un matela de sécurité vis à vis du mouvement du sous jacent, il collecte les premium et ca a une fonction de stop loss. OPTION CREDIT SPREAD peut être utilisé dans tout type de marché, haussier, baissier ou ranging.

Cette stratégie offre un matela de sécurité dans le cas ou le sous-jacent ne va pas dans le sens prédi.

Le principe est de vendre une option OTM avec un STRIKE dans le SPREAD.

Ici encore on va tirer profit de l'acheteur qui risque son argent sur une option ayant peu de chance d'être gagnante, OTM, et a échance courte. Beaucoup d'exemple par la suite.

🟡 THE FIRST STEPS

🟡 HOW THE OPTION CREDIT SPREAD WORKS

🟡 REAL-LIFE TRADE EXAMPLES


CHAPTER #9: A DAY IN THE LIFE OF THE MARKET MAKER

Pas encore lu...


CHAPTER #10: PUT YOUR STOCKS TO WORK—SELL COVERED CALLS

Si on possède des actions (au moins 100), et qu'on ne vend pas des CALL OTM couvert, on jète de l'argent par la fenêtre. En vendant un CALL, on récupère le premium de l'acheteur. En vendant un CALL, on s'engage à vendre 100 actions au prix du STRIKE si le sous-jacent le dépasse. L'idée est de vendre des CALL couvert, càd que si on doit vendre, on ne vend pas à découvert.

🟢 WHAT IS IT?

Il y a deux manières de faire avec les CALL couvert:

  1. On peut vendre des CALL couvert dans la mesure de ce qu'on possède déjà en portfolio.
  2. On peut acheter les actions et vendre des CALL dans la mesure de ce qu'on a acheté.

On s'interressera seulement au cas 1. C'est la qu'un investisseur jète de l'argent par la fenêtre.

En vendant un CALL couvert, on donne le droit à un acheteur de, peut-être, prendre nos actions dans un futur plus ou moins proche. On va donc essayer de vendre des CALL couvert dont la probabilité qu'on les perde soit faible. L'acheteur de l'option (on est le vendeur), nous paye un premium aujourd'hui, pour éventuellement récupérer nos actions. Nous allons essayer de profiter de la perte de la valeur temps de l'option (pour l'acheteur).

Cela va nous permettre d'encaisser des premium, avec un risque faible de perde nos actions. Pour tous les paquets de 100 actions qu'on a en portefeuille on peut vendre des CALL couvert.

🟢 HOW DO WE DO IT?

26/08/2021 DISCK

J'ai 101 actions LEG en portefeuille. Je peux donc vendre 1 CALL couvert. L'action est a 47.67 USD. On peut choisir le STRIKE qu'on veut, mais dans cette stratégie, il faut choisir le STRIKE a un niveau (qu'on pense) qui ne sera pas atteint pendant la durée de la validité de l'option, ou encore mieux, un niveau auquel nous serions content de vendre nos 100 actions.

En vendant un CALL couvert, STRIKE 55, on va récupérer 100 x 0.40 = 40 USD de la part de l'acheteur. Si le 17 décembre 2021, l'action vaut moins que le STRIKE, on garde nos actions, et on peut répéter l'opération. Si nous ne sommes pas assignés à la fin de la validité de l'option, on a gagné 40 USD gratuitement.

Toujours choisir un STRIKE > PRU.

🟢 ASSIGNMENT?

Pas de panique, si on est assigné et qu'on est forcé de vendre nos actions, ainsi soit-il. On a récupéré 40 USD, et on a vendu nos actions à un prix > PRU.

🟢 WHAT, ME WORRY?

🟢 STRIKE PRICE VERSUS COST BASIS

🟢 I GOT MY FOLKS IN ON THE ACTION!

🟢 TRADE UPDATE

🟢 RISK MANAGEMENT

🟢 SUMMARY


CHAPTER #11: A BONUS STRATEGY: RATIO OPTION SPREADS

🔴 MAKING THE TRADE

🔴 2009 SOYBEAN UPDATE

🔴 RISK MANAGEMENT

🔴 ONE OF MY FAVORITE RATIO MARKETS

🔴 2009 RATIO OPTION UPDATE

🔴 SUMMARY


PART THREE: GETTING READY TO TRADE


CHAPTER #12: TOOLS OF THE TRADE


CHAPTER #13: BROKERS AND COMMISSIONS

🔷 REQUESTING PERMISSION TO TRADE OPTIONS ON IBKR

Bothered guy: I requested permission to trade options. Status is pending. Do I have to do something ?
IBRK Representative: Hello, this is 'IBRK Representative'. Please allow me a moment to read the question you submitted to iBot and I'll respond to you shortly.
Bothered guy: Hello IBRK Representative
I requested permission to trade options. Status is pending. Do I have to do something ? Or is it under review by IBKR representative ?
IBRK Representative: Hi Bothered guy
I can see that you have requested for option trading permission which is pending approval.
However, there are some criterias which needs to be met.
I can see that your account meets all the criteria except for the number of trades required.
Your total lifetime trades are less than 100, which must be equal to at least 100 (For options, this is defined as stock trades + options trades + futures trades = at least 100 total trades lifetime).
Once you update this, the permission should get approved.
If you need to update or review your financial information, investment experience or investment objectives you can follow this procedure:
1. Log into Client Portal
2. Click on the Settings menu followed by Account Settings
3. Click on the Configure (gear) icon next to Financial Information, rectify your information and confirm.
Is there anything else I may assist you with?
Bothered guy: I have updated the information
Could you please confirm that you can see it ?
IBRK Representative: Yes, but still the trades are not 100
Please note, our system considers the lower end of the range.
Bothered guy: OK
IBRK Representative: Additionally, for trading in Options extensive knowledge is required
Two years of experience in trading options.
Bothered guy: Clear

CONCLUSION

C'est en forgeant qu'on devient forgeron.

Il nous a donc présenté 5 stratégies.

  1. Deep-In-The-Money (DITM)
    • Buying CALL deep-ITM
    • Ca nous permet de virtuellement posseder une action, de profiter de chaque mouvement du sous-jacent, mais en risquant et en bloquant moins d'argent. DELTA > 90%.
  2. Put-Sell
    • Selling PUT
    • Ca nous permet d'obtenir du cash de l'acheteur, mais aussi d'avoir l'opportunité d'acheter à un prix plus interressant. Peut remplacer l'odre limite épuisette par exemple. Vendre des PUT uniquement sur des actions de qualité, qu'on veut avoir en portefeuille.
  3. Option Credit Spread
    • Buying CALL+Selling CALL (or PUT) with slightly different STRIKE both OTM
    • relire et comprendre
  4. Covered Call
    • Selling CALL
    • Ca nous permet d'obtenir du cash de l'acheteur, tous les 2-3 mois. Pour minimiser les chances d'être assigné, choisir un STRIKE OTM suffisament éloigné.
  5. Ratio Option Spread
    • Sa stratégie la plus risqué
    • relire et comprendre
Classified in : Options - Tags : none

Telegram bot in python

Written by pmd - - no comments

Information from Telegram itself : https://core.telegram.org/bots

YOU: /setjoingroups
BotFather: Choose a bot to change group membership settings.
YOU: @YourBot BotFather: 'Enable' - bot can be added to groups.
'Disable' - block group invitations, the bot can't be added
to groups. Current status is: DISABLED
YOU: Enable
BotFather: Success! The new status is: ENABLED.

Fan control of Raspberry

Written by pmd - - no comments

Hardware

Python3 program

I have red a lot of pages how to control a fan using PWM signal.
Some of them:

 

Finally, it seems my fans don't have much effect on the temperature. About 5°C. So I decided to set an hysteresis:

  • Switch ON fans if temperature > 75°C
  • Switch OFF fans if temperature < 60°C
  • Do nothing if 60°C <= temperature <= 75°C
$ nano gpio_test.py
#!/usr/bin/python3
# -*-coding:Utf-8 -*

import os
from gpiozero import LED
from time import sleep
import RPi.GPIO as GPIO

fanPin = 2
testMode = False

def getCPUtemperature():
    res = os.popen('vcgencmd measure_temp').readline()
    temp =(res.replace("temp=","").replace("'C\n",""))
    #print("temp is {0}".format(temp)) #Uncomment here for testing
    return temp

try:
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(fanPin, GPIO.OUT)
    myPWM=GPIO.PWM(fanPin,200)
    myPWM.start(0)
    GPIO.setwarnings(False)
    while True:
        if testMode:
            duty_cycle = input("Nouveau PWM (%) ? ")
            myPWM.ChangeDutyCycle(int(duty_cycle))
        else:
            temp = float(getCPUtemperature())
            if temp > 75:
                myPWM.ChangeDutyCycle(100)
            elif temp < 60:
                myPWM.ChangeDutyCycle(0)
            else:
                pass
            sleep(5) # Read the temperature every 5 sec, increase or decrease this limit if you want
except KeyboardInterrupt: # trap a CTRL+C keyboard interrupt
    GPIO.cleanup() # resets all GPIO ports used by this program

Set linux service

$ nano /etc/systemd/system/manageFan.service
[Unit]
Description=start fan management at system startup
After = network-online.target
Wants = network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /home/pi/gpio_test.py

[Install]
WantedBy=multi-user.target

🇬🇹 GT Rhum Zacapa + 🇨🇺 CU Cigare Bolivar

Written by pmd - - no comments

Zacapa 23

Containing a blend of rums from 6 to 23 years old.

Keynote
Wonderfully intricate with honeyed butterscotch, spiced oak and raisined fruit, showcasing the complexity of the sistema solera ageing process.

Appearance
Light mahogany, with the tones of long barrel ageing at the rim and long, slow legs clinging to the glass.

Bolívar

The Cuban-produced Bolívar cigars are very full-bodied, with considerable ligero in the blend and have traditionally been some of the strongest and most full-bodied Havana cigars.

Wireguard on Raspberry

Written by pmd - - no comments

I have tried to use Wireguard following two guides :

  1. From this forum thread, without succes: Guide: Install Wireguard On Raspberry latest releases
  2. From this blog article, without succes as well: Installing and Configuring WireGuard on Raspberry Pi OS (August 2020)
    Updated (last with iptables): Installing and Configuring WireGuard on Raspberry Pi OS (September 2021)

This can be used as well to generate wireguard peers configurations + QR codes: Wireguard Tools

=> no successfull handshake between server (raspberry) and peers (Android and Windows 10).

Configuration

Server:

$ sudo cat /etc/wireguard/wg0.conf
[Interface]
Address = 192.168.99.1/24
ListenPort = 58280
PrivateKey = gNVxJe7Se842IiOR5GsXeM4sHcacGhPATIdQCgqP8Wa=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = OQmmvh9/8PDWFIpOEzVWzOZ1HXQ48+10vONFlUNb0ia=
AllowedIPs = 192.168.99.2/32
[Peer]
PublicKey = N9VPXnH8hip4sJGGWm4ziLFWD5ZAveoj7H5oH8OgsHa=
AllowedIPs = 192.168.99.3/32

Peer 1:

$ cat ~/wg_config/users/client1/client.conf
[Interface]
Address = 192.168.99.2/24
PrivateKey = 6OfJPX1ZQCFu08fTy2uU6JdgUf/qXgzBoTtX/tCYX3a=

[Peer]
PublicKey = b6kqDH4pjAdK0LqPrEF4Fc9d4XxR0Eb3kSk9rzdEKma=
AllowedIPs = 192.168.99.1/32, 192.168.1.0/24
Endpoint = adress.ddns.net:58280

Peer 2:

$ cat ~/wg_config/users/client2/client.conf
[Interface]
Address = 192.168.99.3/24
PrivateKey = uB+g5H0kbyI07kHdAajcQUE8VqMTaNqqiu0yj6BrH1a=

[Peer]
PublicKey = b6kqDH4pjAdK0LqPrEF4Fc9d4XxR0Eb3kSk9rzdEKma=
AllowedIPs = 192.168.99.1/32, 192.168.1.0/24
Endpoint = adress.ddns.net:58280

 

Troubleshooting

12/10/2020

UDP correctly forwarded

I verified UDP port was correctly forwarded by my ISP modem/router, following Test whether UDP port is open: simple UDP server and client

Server side:

$ nc -l -u -p 58280

Client side:

$ nc -u servname_or_ip 58280

Checking if packets arrive to server

Listening on specific interface and on precise port of the server:

$ sudo tcpdump -i eth0 'port 58280'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:56:36.474701 IP 92.88.90.88.56188 > 192.168.1.201.58280: UDP, length 148
20:56:36.476725 IP 192.168.1.201.58280 > 92.88.90.88.56188: UDP, length 92
20:57:34.066017 IP 92.88.90.88.51673 > 192.168.1.201.58280: UDP, length 148
20:57:34.070037 IP 192.168.1.201.58280 > 92.88.90.88.51673: UDP, length 92

Here I tried two times to connect a peer to the server while pinging Wireguard server IP (192.168.99.1) from peer.

17/10/2020

Recording packets using tcpdump on both client and server sides

CLIENT: in a country potentially blocking VPN stuff
SERVER: in France, probably not blocking anything

I have generated another peer configuration. This time it is not a windows, not an android, but an openwrt router using same .
I have fixed the port in use for the wireguard client on openwrt in order to listen WAN interface on 51820.

What is observed on CLIENT openwrt side:

root@OpenWrt:~# tcpdump -i eth1 'port 51820'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:37:45.906247 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:37:46.025023 IP raspberry.abo.wanadoo.fr.58280 > 192.168.1.102.51820: UDP, length 92
14:37:46.038821 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:38:11.087567 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:38:36.687153 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:39:02.286884 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:39:27.887315 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:39:53.487145 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32
14:39:53.498819 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:39:59.257666 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:04.377588 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:10.138437 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:15.257703 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:21.017550 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:26.782109 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:31.897640 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:37.659644 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:42.777571 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:48.537585 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:40:54.298502 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:00.057651 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:05.177582 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:10.937544 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:16.697736 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:22.457569 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:28.220105 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:33.977597 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:41:39.097547 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
14:42:04.697538 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 148
^C
29 packets captured
29 packets received by filter
0 packets dropped by kernel
root@OpenWrt:~# wg
interface: WG0
public key: OQmmvh9/8PDWFIpOEzVWzOZ1HXQ48+10vONFlUNb0ia=
private key: (hidden)
listening port: 51820

peer: b6kqDH4pjAdK0LqPrEF4Fc9d4XxR0Eb3kSk9rzdEKma=
endpoint: raspberry.abo.wanadoo.fr:58280
allowed ips: 192.168.99.1/32
latest handshake: 32 minutes, 12 seconds ago
transfer: 92 B received, 40.80 KiB sent
persistent keepalive: every 25 seconds
root@OpenWrt:~#
  • Only first two captured packets were seen by SERVER side.
  • These two captured packets are enough to declare successful handshake on CLIENT side.

What is observed on SERVER raspberry pi side:

pi@raspberrypi:~ $ sudo tcpdump -i eth0 'port 58280'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:37:45.924082 IP 93.88.83.27.51820 > 192.168.1.201.58280: UDP, length 148
16:37:45.928019 IP 192.168.1.201.58280 > 93.88.83.27.51820: UDP, length 92
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
pi@raspberrypi:~ $ sudo wg
interface: wg0
public key: b6kqDH4pjAdK0LqPrEF4Fc9d4XxR0Eb3kSk9rzdEKma=
private key: (hidden)
listening port: 58280

peer: OQmmvh9/8PDWFIpOEzVWzOZ1HXQ48+10vONFlUNb0ia=
endpoint: 93.88.83.27:51820
allowed ips: 192.168.99.2/32
transfer: 888 B received, 552 B sent
pi@raspberrypi:~ $
  • Only first two packets captured by CLIENT are seen as well on SERVER side.
  • Handshake is not declared successful on SERVER side.
  • Why SERVER is not seeing following packets ??? If I restart CLIENT, SERVER does not see packets for new handshake unless port used by CLIENT changes.
  • Why SERVER is not seeing anything from this CLIENT packet: " 14:37:46.038821 IP 192.168.1.102.51820 > raspberry.abo.wanadoo.fr.58280: UDP, length 32 "

Trying to connect from local country

CLIENT: in a country potentially blocking VPN stuff Computer using Windows in France, probably not blocking anything
SERVER: in France, probably not blocking anything

pi@raspberrypi:~ $ ip route show table 42
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.201 metric 202
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.201 metric 202
192.168.99.0/24 dev wg0 proto kernel scope link src 192.168.99.1
pi@raspberrypi:~ $ sudo tcpdump -i eth0 'port 58280'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
19:58:01.734652 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 148  # handshake
19:58:01.741670 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 92   # handshake
19:58:01.781909 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 96   # ping from client
19:58:01.782398 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 96   # server answers
19:58:02.893737 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 96   # ping from client
19:58:02.894315 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 96   # server answers
19:58:03.822017 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 96   # ping from client
19:58:03.822643 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 96   # server answers
19:58:05.793794 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 96   # ping from client
19:58:05.794394 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 96   # server answers
19:58:15.839250 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 32   # ???
19:58:51.032841 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 128  # server pings client
19:58:51.123963 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 128  # client answers
19:58:52.033771 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 128  # server pings client
19:58:52.090988 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 128  # client answers
19:58:53.035792 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 128  # server pings client
19:58:53.135887 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 128  # client answers
19:58:54.037607 IP 192.168.1.201.58280 > device.mobile.abo.orange.fr.51706: UDP, length 128  # server pings client
19:58:54.076616 IP device.mobile.abo.orange.fr.51706 > 192.168.1.201.58280: UDP, length 128  # client answers
[...]
[...]
[...]
pi@raspberrypi:~ $ sudo wg
interface: wg0
  public key: b6kqDH4pjAdK0LqPrEF4Fc9d4XxR0Eb3kSk9rzdEKma=
  private key: (hidden)
  listening port: 58280

peer: xxMWH9tZDwCNXPbErQxBuDejgkxNU1QOm9vFezUBeSa=
  endpoint: device.mobile.abo.orange.fr :51706
  allowed ips: 192.168.99.6/32
  latest handshake: 19 seconds ago
  transfer: 564 B received, 476 B sent

=> It worked ! I conclude that wireguard is blocked in the country where the client is.

Interesting to read about how easy it is to block wireguard: Let's talk about obfuscation again

 

 

Install a newer package version than available on PyPI

Written by pmd - - no comments

Try to simply update

pi@raspberrypi:~ $ sudo python3 -m pip install --upgrade mplfinance --no-cache-dir
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already up-to-date: mplfinance in /usr/local/lib/python3.7/dist-packages (0.11.0)
Requirement already satisfied, skipping upgrade: matplotlib in /usr/lib/python3/dist-packages (from mplfinance) (3.0.2)
pi@raspberrypi:~ $

It says the package is already at the newer version 0.11, but on github.com/matplotlib/mplfinance there is even newer.

Alternative that worked

Download the sources :

pi@raspberrypi:~ $ wget https://github.com/matplotlib/mplfinance/archive/master.zip
--2020-08-20 21:01:12--  https://github.com/matplotlib/mplfinance/archive/master.zip
Resolving github.com (github.com)... 140.82.118.4
Connecting to github.com (github.com)|140.82.118.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/matplotlib/mplfinance/zip/master [following]
--2020-08-20 21:01:12--  https://codeload.github.com/matplotlib/mplfinance/zip/master
Resolving codeload.github.com (codeload.github.com)... 140.82.112.9
Connecting to codeload.github.com (codeload.github.com)|140.82.112.9|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’

master.zip  [                         <=>                ]  19.37M   208KB/s    in 94s

2020-08-20 21:02:46 (212 KB/s) - ‘master.zip’ saved [20307580]

pi@raspberrypi:~ $

Unzip :

pi@raspberrypi:~ $ unzip master.zip -d mplfinance
Archive:  master.zip
3af71a860c9eb646b92a6c9d4d4ab0a129f3db79
   creating: mplfinance/mplfinance-master/
   creating: mplfinance/mplfinance-master/.github/
   creating: mplfinance/mplfinance-master/.github/ISSUE_TEMPLATE/
  inflating: mplfinance/mplfinance-master/.github/ISSUE_TEMPLATE/ask-a-question.md
  inflating: mplfinance/mplfinance-master/.github/ISSUE_TEMPLATE/bug_report.md
[... many lines ...]
finishing deferred symbolic links:
  mplfinance/mplfinance-master/examples/original_flavor/data -> ../data
pi@raspberrypi:~ $

Go in unziped folder :

pi@raspberrypi:~ $ cd mplfinance/mplfinance-master/
pi@raspberrypi:~/mplfinance/mplfinance-master $

Install :

pi@raspberrypi:~/mplfinance/mplfinance-master $ sudo python3 -m pip install .
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /home/pi/mplfinance/mplfinance-master
Requirement already satisfied: matplotlib in /usr/lib/python3/dist-packages (from mplfinance==0.12.7a1) (3.0.2)
Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from mplfinance==0.12.7a1) (1.0.3)
Requirement already satisfied: python-dateutil>=2.6.1 in /usr/lib/python3/dist-packages (from pandas->mplfinance==0.12.7a1) (2.7.3)
Requirement already satisfied: pytz>=2017.2 in /usr/lib/python3/dist-packages (from pandas->mplfinance==0.12.7a1) (2019.1)
Requirement already satisfied: numpy>=1.13.3 in /usr/lib/python3/dist-packages (from pandas->mplfinance==0.12.7a1) (1.16.2)
Building wheels for collected packages: mplfinance
  Running setup.py bdist_wheel for mplfinance ... done
  Stored in directory: /root/.cache/pip/wheels/4e/71/07/c9cc7215e05dd2bcc76f171eaf646c5e069e3bc296fb8defb9
Successfully built mplfinance
Installing collected packages: mplfinance
  Found existing installation: mplfinance 0.11.0
    Uninstalling mplfinance-0.11.0:
      Successfully uninstalled mplfinance-0.11.0
Successfully installed mplfinance-0.12.7a1
pi@raspberrypi:~/mplfinance/mplfinance-master $

Done, should be good.

Source

Check connectivity and switch on/off a LED (GL-AR150)

Written by pmd - - no comments

Shell script that will check if there is connectivity to a defined website every 60 seconds and switch ON/OFF the led :

  • /usr/bin/WANLED :
#!/bin/sh
while [ true ]; do
        /usr/bin/wget -q --tries=2 --spider https://www.google.com
        if [ $? -eq 0 ]; then
                #echo "Connected ! LED RED OFF. LED GREEN ON."
                echo "none" >  /sys/class/leds/orange:wlan/trigger
                echo "default-on" >  /sys/class/leds/green:configurable/trigger
        else
                #echo "Not connected ! LED RED ON. LED GREEN OFF."
                echo "default-on" >  /sys/class/leds/orange:wlan/trigger
                echo "none" >  /sys/class/leds/green:configurable/trigger
        fi
        sleep 60
done

Check which LEDs are available and modify in above script if necessary:

root@OpenWrt:~# ls /sys/class/leds
ath9k-phy0          green:configurable  green:power         orange:wlan

If --tries option is not recognized, you may need to install proper wget. Check like this:

root@OpenWrt:~# ls -la $(which wget)
lrwxrwxrwx    1 root     root            18 Apr 27 20:28 /usr/bin/wget -> /bin/uclient-fetch # Need to get proper wget
root@OpenWrt:~# opkg install wget-ssl
Downloading [...]
[...]
Signature check passed.
root@OpenWrt:~# ls -la $(which wget)
lrwxrwxrwx    1 root     root            21 May 21 06:16 /usr/bin/wget -> /usr/libexec/wget-ssl # No need to get proper wget

Schell script to autostart the above script :

  • /etc/init.d/WANLED :
#!/bin/sh /etc/rc.common

START=99
STOP=1

start(){
        /usr/bin/WANLED &
}

stop(){
        killall -9 WANLED
}

Now let's make these script executable and started at startup:

# chmod +x /usr/bin/WANLED
# chmod +x /etc/init.d/WANLED
# /etc/init.d/WANLED enable
# /etc/init.d/WANLED start

Now the orange LED should be ON when there is no connectivity to Google.

LEDs may be driven by other component. To be sure it is not, go to System > LED Configuration.
In my case it looks like this:

 Name               | LED Name           | Trigger |
--------------------|--------------------|---------|--------------
 green:power        | green:power        | none    | ☰EditDelete
 green:configurable | green:configurable | none    | ☰EditDelete
 orange:wlan        | orange:wlan        | none    | ☰EditDelete

FYI OpenWRT in use was : OpenWrt 22.03.5, r20134-5f15225c1e

Source: LED, Start script at startup, LED on when Internet is available

Руки Вверх - Он Тебя Целует

Written by pmd - - no comments
C#m  4 4 3 3 2 4
A    5 7 7 6 5 5
B    7 9 9 8 7 7
G#m  4 5 5 4 4 4

ms

C#m            A
Вечером теплым брожу один
B               G#m
"Ты не можешь ее вернуть" - шепчет мне нежно дождь
C#m            A
Знаю, что встречу тебя с другим
B               G#m
Лучше это была б не ты, но рядом с ним ты идешь
C#m            A
Я ж тебя так любил, так любил
B               G#m
Думал, что ты ждала меня. Что же ты сделала
C#m            A
Я ж тебя так любил, так любил
B               G#m
А теперь потерял тебя

 

Припев.
C#m            A
А он тебя целует, говорит что любит
B               G#m
И ночами обнимает, к сердцу прижимает
C#m            A
А я мучаюсь от боли со своей любовью
B               G#m
Фотографии в альбоме о тебе напомнят

А он тебя целует, говорит что любит
И ночами обнимает, к сердцу прижимает
А я мучаюсь от боли со своей любовью
Фотографии в альбоме о тебе напомнят

О тебе...

Вечером теплым гремит гроза
Снова вижу я вас вдвоем, ты улыбаешься
В сторону я отвожу глаза
Что же делаешь ты со мной, зачем издеваешься
Я ж тебя так любил, так любил
Думал, что ты ждала меня. Что же ты сделала
Я ж тебя так любил, так любил
А теперь потерял тебя
А он тебя целует, говорит что любит
И ночами обнимает, к сердцу прижимает.

Source 1, 2, 2

Classified in : Guitare - Tags : none
Rss feed of the articles