EExcel 丞燕快速查詢2

EExcel 丞燕快速查詢2
EExcel 丞燕快速查詢2 https://sandk.ffbizs.com/

k8s kubernetes Lesson 6 yaml docker-registry cron part 2 No minikube

normal k8s

https://sueboy.blogspot.com/2019/11/kubernetes-nodeport.html

namespace docker-registry

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "docker-registry",
    "labels": {
      "name": "test-dev"
    }
  }
}



secret.yml ID/PWD:username/password tls:cn=docker-registry

apiVersion: v1
kind: Secret
metadata:
  name: registry-tls
  namespace: docker-registry
type: Opaque
data:
  tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVzRENDQXBnQ0NRRHpteitOQUZCMGRUQU5CZ2txaGtpRzl3MEJBUXNGQURBYU1SZ3dGZ1lEVlFRRERBOWsKYjJOclpYSXRjbVZuYVhOMGNua3dIaGNOTVRrd01qSTJNVEF3TlRBMldoY05NakF3TWpJMk1UQXdOVEEyV2pBYQpNUmd3RmdZRFZRUUREQTlrYjJOclpYSXRjbVZuYVhOMGNua3dnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDCkR3QXdnZ0lLQW9JQ0FRRFBKcHhZK0RVQ05aMVh4Tkc0bUJlaFp2ZXZ4R21XMFdZandhRklzcFQ0L09ETWgwZVgKRXRmT0xpaUZibXFzMi93L01CeWlUSWlZczltMFdhdG5uVDc5bm5wZUVHdFNtQUJHeXMyU1hxdDZ3SzJubHJSLwowVllaVEpJQ2t2amE5WExtQ2w2eEgrbFFxWVFnNHlHSWxuZ2ZXUFBCTzkvVFhnS2Jmc2xBTk9uTXY0ckVTMlNFCkZLQzNuSTRqY1JWc1BQSUNkNDNJVlU1akNiRllublZJS2l2eTdqY0l0Q2JoelZsTHRuOHFIRE5YcElHSlpTTlYKUkdSdUVhN3ZFbUloei90blJZdFJRTmpSNGhQNkM5eG1QMFpBZFhjQWZYMTk0aVVKNDRFYnZUZ0NKK0I4Yi9jdwpEZ29IRWxCbGtJaUtmSm9wL0RhR3B5OUY0VjRhbHZIcnNMdFdYYTZYWmQzeGxmWWx6S2xMZ0IzTDJVQ2VCUWljCk0yUDlXMEZZZGFIR3NjUkFyNGQvbEtiZE1PYXNDV2dXaHlGekRDMUFYQkcxdU9SSXFBbi84OTJPQnk1UVE2SDQKSk9yOXNRRGhRejVEdWZReFlGNDZUZjZUNk9MOGp6TkUrUk11YmR2RmVVS1ZwYzJXazgrVWY3UE9OdW9iRC9XZgpTRFVCYjNsSCtGVTFZalVhR0Y5VzNwSE14NXZzTU8xOFJ3UTIzU2ZFT1dMZFFseU8rYXg3STZKVm5CbG1xaStFCk16QjFHMzVTbmlMMWcyVDRkbFlIWThIbllaU1A3RFdYR3JrZ2l6SloweUUveE55dkJuLy9GeWtIYTlIdjBhUk0KNE45OUhHRkthTmNzdkFDR2NSU2QvYUdHUDdqWHNEb3R2R1U5VjU4ems2S21oVGRjN3V0cE9Hb0Nud0lEQVFBQgpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUM4U1orN0V3U0liY0tDT0xoV3NvbDEzNUVIYVdiRTEzOFRRdHBVCk55aExqZXM3THVQSjg3YVdjK0NWT3VMWEdIY2FtTiszQWhKL1k3L1U5NlVCWS8yTDREUnd6b0RDYzhhQ3ZQY0oKZDhWcGxvUXJuRzRueUgxVTJUV243SXo1UDNrYjVZeE82UHlVdlNZMTJTaXBxWmVuQU1STzVQSDRlUldwbDkwbAp3cHJDVU1TNGhaL3FGVE1ORG1HSzBGS243VHZRekZrSVo1eEhUK0VncTNzcERVY1BCenV4WVdGTG9pT2ZGUFRZCnZkSDc5Vis5K1p6T3ZBVlF3ZHhHSVlOaGlpNGd1OTg4N3Jld3RKbEZUQ1pXT05DWnNMcUw0RHBtWmJhbUlxRi8KakF5ZUR4T2kwN2VKcTlUREFLUlErZzg1NzMvR2JhVU5MVHVndzM0Z1pNZUttUnNzUjBEZWc5ckFHeXRRM2pqRApqeWJLYmo1SE8vT25xNTlGSk9rRi94eklZYWtXcjVPem1kRzJDdVhNOXhSN3BYSm5IM0RKcWUwc2FQd2ZMV2xPClF3L1RRM1lpMHg4ajhwOTRpeHZWbnRPRFRIUXBmeUFDMDloaFNmVG1sMnJXT3FqTzJ4d1dzUkhEOXBUQ0FpMG0KTHlZQS9UTVVXRWdMdklmMEZjOXRZZGkrck9HQVJuRWdXdjdhRjhKL0pRUlZ2ZjBVL2hGTmo4bFRmY0RuOU95WQprVEtWdHNRVllqZXNBU1lIdzYyRmZoUkRIZmZRbUlscTN3emljU3MvbnBQMzZraExCZGt0TnZzakVNaE40a0JLCjR5NlJWekdZR20rakpVQk8zV3ZQbHF0T0pwVUFCbHVCWFZOK3hhMnZOODNGYjZtMFlJTmVWbXNFQmxnVTVGT1oKa2xFVTJ3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
  tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRRFBKcHhZK0RVQ05aMVgKeE5HNG1CZWhadmV2eEdtVzBXWWp3YUZJc3BUNC9PRE1oMGVYRXRmT0xpaUZibXFzMi93L01CeWlUSWlZczltMApXYXRublQ3OW5ucGVFR3RTbUFCR3lzMlNYcXQ2d0sybmxyUi8wVllaVEpJQ2t2amE5WExtQ2w2eEgrbFFxWVFnCjR5R0lsbmdmV1BQQk85L1RYZ0tiZnNsQU5Pbk12NHJFUzJTRUZLQzNuSTRqY1JWc1BQSUNkNDNJVlU1akNiRlkKbm5WSUtpdnk3amNJdENiaHpWbEx0bjhxSEROWHBJR0paU05WUkdSdUVhN3ZFbUloei90blJZdFJRTmpSNGhQNgpDOXhtUDBaQWRYY0FmWDE5NGlVSjQ0RWJ2VGdDSitCOGIvY3dEZ29IRWxCbGtJaUtmSm9wL0RhR3B5OUY0VjRhCmx2SHJzTHRXWGE2WFpkM3hsZllsektsTGdCM0wyVUNlQlFpY00yUDlXMEZZZGFIR3NjUkFyNGQvbEtiZE1PYXMKQ1dnV2h5RnpEQzFBWEJHMXVPUklxQW4vODkyT0J5NVFRNkg0Sk9yOXNRRGhRejVEdWZReFlGNDZUZjZUNk9MOApqek5FK1JNdWJkdkZlVUtWcGMyV2s4K1VmN1BPTnVvYkQvV2ZTRFVCYjNsSCtGVTFZalVhR0Y5VzNwSE14NXZzCk1PMThSd1EyM1NmRU9XTGRRbHlPK2F4N0k2SlZuQmxtcWkrRU16QjFHMzVTbmlMMWcyVDRkbFlIWThIbllaU1AKN0RXWEdya2dpekpaMHlFL3hOeXZCbi8vRnlrSGE5SHYwYVJNNE45OUhHRkthTmNzdkFDR2NSU2QvYUdHUDdqWApzRG90dkdVOVY1OHprNkttaFRkYzd1dHBPR29DbndJREFRQUJBb0lDQVFDb0FkZXliUFNKS3pUR3Q1R2tsbTRyCjhKZ1lUVU9hRjVFd2xOMmJXWU5yZ2FWTkhMYmFkMlRpQ3h2QVJISnVhaWpta3IzV2dCNFZRMkRoWGd5Zmg3Qk0KQUZtY3F0SndkV2xjQVNYRGZkYTBRMHRVYmUxTThWcFVRSDczYVg0K0QrNDFWdG0vN0hMTmdmN3dzV1pFSWsyZwpsd056aUgwYkw5Y0xpRVB2T0RzYlhZcE5kQnc4NTRJR0NRcGJBbDl1bnV0bFJ0T09WR216OTJ1SHhWUzN4OFJIClRoOENoeUkxNXRkeWlid1BTam4xN2kxRll1cktRQ0w0Qm8yTHhxd2lZazJ6VDNzVDFuVkRuSW01Tmg5MktnRnYKVEJYTkp2bzl1OGx3Z0x6NDQzbG1mak1hbWJDd24rSlFJL0Zpdmx1UGZrbUduZEVYV3NjRGRTcGVoR2dIVVJwTwpGWURKU29jaTlGVG5NRTF4a3c4TUR5V1JjSzdvSjJrRzd0RXh4aDBML1NjK1dmY2RKVFJyRW9BR3VxNzNYdWZGCk1CdVRoK3JCVU9ITVpSTVJMTXN6aGVTekp1SXBZU1BsNUF1VUY5cHVNd21vYkFpbXBzdmpQVEprRlR3bytLdmQKYUVlNW5IMFlmTlRNS3JSU1YybjBaTmp0dHB3VU9VZ2lXVE9VdnJXOGNiMlVJZjRpRVk3VjJBc3ArKzVvK25QdQpZRkdiZWd0d1U3dURyNTN2YjNPRE9ZRVUrUlZmYTlScWxXMUswYlpmeGZBcCtzdVNQTHczclBiNk4xZ0UybWhFCnNUcy9FYmQ5dW5Vdm1XZ0tzdGtBeDBuRVM4Z1VqNW9Zc1F5Um1wM1NaaUJXUmlXYnZoSzRaQ3k0V3NaZUZWZEoKMEtuNDZCeXB1Sndtelozd2hRMDBZUUtDQVFFQS9XODlsa0c1eW9UVXlEZnI3M0hqMHNyZ0o3amlLdlNoZ29PVwpCck1ndkxxeEMzUVRaZjg2VHpObnhoVDFwSS9sUnNRN2tiYjJhclpHZ3phRHlNemV2QXpYMUJiNnRkakxnVVIvCi9ZMTR1QW9VVzhYNEhrY0Rhb2xtVkFjOXdsRmpJcHVjY25YdEZJZ3NacnVydEJSQW9mSU91aUV4bzJCQkc3aUEKMW1qN2RqZlZwSTQzWWd4UHBiZndmVjV0bC9CTENMQis0RzZkclhvaExBdTlqSWlKNWw4MEEydG1qR3Z3S3lVTApHc3RGamc1MVcxTjQyTC8rY0FSQ213a3pUUTkwMFZaS1BaOUdtZTE2NndZdjl4eXdsZjN6L09udGJsZjRLaXE4ClVVQXR3RFF3bWFwN3o1OUhpckp1TEczMDk3QWRlNTZjQ1JOMk53c0YzYTJQM09VeFVRS0NBUUVBMFQ5dHlzK24KVHdkd0JNK0lRcVBQUWt0ZjhodENSUW1Wamw0WWVZc1ptR0F2TXRqN00wYVhjcnVLT0k2VjBmc0k2T0RrbWRDSQpnZWYwUk15WXR3czdMcGtXWmIyQzlFdzk0K3VpL2tEQVlxUUJXczBVaTQwbTdNeDgwN2pKdGZONVJad3d1MGxNCm1kR1ZSa3hkbWVtM0V6MmhsR2ltZUMvcnB5REtiMkY1SU9Mdjk1cUdlWHBlOGNwUDhVMDd6dTdqdmdDNVRSeDcKV0pYYVVFSEt4bjVHVHU2UUluMXQrZmw5MnRnNXprNmNjaklUeStvUG4yNWU1ZnR3ZlNaVzg1Tno2dFQzRE04bwpMZ0h4aFBNS0RzcjZySnVRSExObHI1MnY4TDlwVlZlWlpOanlmbDNxUmhqOE5zanN4OEhCczV1Z1ZFYU9MWkJTClFrU1pCYzNkYldONDd3S0NBUUFMWVhaemkrb0s5U0lWQjZYWnI5U2FQN0FIT0o4M2JKcmdJSWFaTUd3VTdaRkwKd1YrcG9lZDliUUtJKzZINFRObnY3cG42Tml3a3FLREwvYU8zWGJQVzRBREZMbTc5d1ltSitZaUIyMXVEY0RodgowcGtNeXdXVlFDeFBNN0FMVE5wVjBJVWJBcjZ0d0Z1MkZWRmxtYzg1Tm9TQXlVTFFZbDhxSG9QeW5PNUY1Y1g3ClNNT2w3SVdiSElKNUxzZGZIbFJRUkpTK0FWbWxVNm12cjZ0SVowMUNBaDUwMU5yYkRYSFFqaTVNZXJwWjRiNVYKWm84enRKTjVka2VEYk10WDk0eTRaZGFabzlCbzB5aEU2NWMxMHB6L2IxTUlsWHlyQ3RwREVuNDRhOWhpSERYZQpnTEJrcDNOd0FBbEFoNE9McCtYN0NpbFpvdjBaQmE2eXdMdUlJT2F4QW9JQkFILytaSkppWXQwY2w1RFp3V2ZCCis4MTVmYjhDblk3TlJnWkgySURBYlcrZnBqOWNLb3c2NmZqc2JxZ1p6OXNaeTJGbjcyMkcrWGs5QVZYME1KWUcKOExTWVAvTUw4VWF1UEUxbW5kVVlscFcvN0hRMmJoTE96TGljZk42bGNmMHlhVVFEUG12UmNtSEVxYUxPbzVLNgpPNW94WU56L0JwVU4rdi9JTnd2YWU5VjUrMzlocmxBd1lsTlVoWUg4MUZESUg5YmhhbmVZckhxTGIzY1lSNGtUClJMNlRmdWNhQW1PZUVUWUVmWmVNem5XcjNDQW5sRmJabElMcFF1M0t2ZlZRaE45b1ZaWW9RVk9qTExFK1dUQ2oKU0tLOHBYSm82aEo2U2x6aE9QVlRHQ2x2NnlVUkhYU3pZOU8vSTljczFlZWZrbnI2alkyaGNpL0c5ak51c2J0dgoxVkVDZ2dFQkFJVUdEbEcxQmpPdTVhcVZ1eDZzTzUwbHB4eVpienFvMm1TRVMwZHNYNDcvclN6ZGRoblE4QnVVCjlURHF3aDBlM0pZdGlUczM4Z21RT1pVdndEM2FnNjdDU0t1T3FNUWM3aU00S01rbmdrakxOMnhIM2luYjZxUjMKc0ZLYVluWDlMdTBZeVVZU013cGwyNjM4ZHoxanY3a05wRE8xd2p0bTh5TjdxQk00d3IrU3JNV0EyWHlhSG1hZgpBZE5hNzdxdHppL0JIcXdVTFZsbDFTSitIU1dqdHU2QmRNQTlLandzMllieWxUTm1UbmZWTzdLeVMzTFAwY2xCCm1MaEVhYS93d2J1Mm5sTWRxdDJpeTQzcE5QYmhRZ0lOck95dDR6cXhNZEVXdWtSeHAwSGFieXdFcldFWXJFQ1cKdS90ZDhKZ291QmZqZ0JDQ3hnNjNvWlJVS1ZnU1FQST0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQ==
  HTPASSWD: dXNlcm5hbWU6JDJ5JDA1JGprbU5CSm1DVTYyV0pKc0tqcWx3RC5BQmpLcUswc2R0SU9lZ29kb3VrQzFpR0owc05ENjhD


configmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: docker-registry
  namespace: docker-registry
data:
  registry-config.yml: |
    version: 0.1
    log:
      fields:
        service: registry
    storage:
      delete:
        enabled: true
      cache:
        blobdescriptor: inmemory
      filesystem:
        rootdirectory: /var/lib/registry
    http:
      addr: :5000
      host: https://docker-registry:30500
      secret: asecretforlocaldevelopment
      headers:
        X-Content-Type-Options: [nosniff]
        Access-Control-Allow-Origin: ['*']
        Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
        Access-Control-Allow-Headers: ['Authorization']
        Access-Control-Max-Age: [1728000]
        Access-Control-Allow-Credentials: [true]
        Access-Control-Expose-Headers: ['Docker-Content-Digest']
      tls:
        certificate: /cert/x509/public
        key: /cert/x509/private
    auth:
      htpasswd:
        realm: basic-realm
        path: /auth/htpasswd
    health:
      storagedriver:
        enabled: true
        interval: 10s
        threshold: 3


deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry
  namespace: docker-registry
spec:
  replicas: 2
  selector:
    matchLabels:
      app: registry
  template:
    metadata:
      labels:
        app: registry
    spec:
      #restartPolicy: Always
      volumes:
        - name: config
          configMap:
            name: docker-registry
            items:
              - key: registry-config.yml
                path: config.yml
        - name: cert
          secret:
            secretName: registry-tls
            items:
              - key: tls.crt
                path: public
              - key: tls.key
                path: private  
        - name: htpasswd
          secret:
            secretName: registry-tls
            items:
              - key: HTPASSWD
                path: htpasswd
        - name: registry-data
          emptyDir: {}  
      containers:
        - name: registry
          image: registry:2.7.1
          ports:
            - name: http
              containerPort: 5000
              protocol: TCP
          volumeMounts:
            - name: config
              mountPath: /etc/docker/registry
              readOnly: true
            - name: cert
              mountPath: /cert/x509
              readOnly: true
            - name: htpasswd
              mountPath: /auth
              readOnly: true
            - name: registry-data
              mountPath: /var/lib/registry


service.yml

apiVersion: v1
kind: Service
metadata:
  name: docker-registry
  namespace: docker-registry
spec:
  type: NodePort
  ports:
  - name: registryhttp
    port: 5000
    targetPort: 5000
    nodePort: 30500
  selector:
    app: registry


===== docker-compose =====

docker-compose.yml

version: '3.3'

services:
  gethpeers:
    build:
      context: gethpeers/
    image: docker-registry:30500/username/gethpeers
    volumes:
      - cronlog:/app/cronapplog:rw
      - /etc/localtime:/etc/localtime:ro
    networks:
      - fastdev

  fakelog:
    build:
      context: fakelog/
    image: docker-registry:30500/username/fakelog
    volumes:
      - cronlog:/app/cronapplog:rw
      - filebeat:/usr/share/filebeat/data:rw
    networks:
      - fastdev

volumes:  
  cronlog: 
  filebeat:
  
networks:
  fastdev:
    driver: bridge


fakelog/Dockerfile

FROM docker.elastic.co/beats/filebeat:6.5.4
COPY filebeat.yml /usr/share/filebeat/filebeat.yml
USER root
RUN chown root:filebeat /usr/share/filebeat/filebeat.yml
USER filebeat


fakelog/filebeat.yml

filebeat.prospectors:

- type: log
  paths:
    - /app/cronapplog/*.log
  exclude_files: ['.gz$']
  fields_under_root: true
  symlinks: true

output.logstash:
  hosts: ["logstash:5044"]


cron/crontab

* * * * * /app/run-cronjob.sh /app/start.sh > /proc/1/fd/1 2>/proc/1/fd/2
#* * * * * echo hello > /proc/1/fd/1 2>/proc/1/fd/2


cron/Dockerfile

FROM debian:stretch-slim
RUN apt-get -y update && apt-get install -y cron curl jq nano iputils-ping net-tools && \
    rm -r /var/lib/apt/lists/*
ADD . /app
ADD crontab /var/spool/cron/crontabs/root
RUN chmod 0600 /var/spool/cron/crontabs/root
RUN chmod +x /app/run-cronjob.sh
RUN chmod +x /app/start.sh
CMD cron -f


cron/run-cronjob.sh

#!/bin/bash

if [ -z "$1" ] ; then
  echo "need name of cron job as first argument" > /proc/1/fd/1 2>/proc/1/fd/2
  exit 1
fi
 
if [ ! -x "$1" ] ; then
  echo "cron job file $1 not executable, exiting" > /proc/1/fd/1 2>/proc/1/fd/2
  exit 1
fi
 
if "$1"
then
  echo "cron job $1 Run!" > /proc/1/fd/1 2>/proc/1/fd/2
  exit 0
else
  echo "cron job $1 failed!" > /proc/1/fd/1 2>/proc/1/fd/2
  exit 1
fi


cron/start.sh

#!/bin/bash

# geth get admin.peers
IP_PORT=xxx.xxx.xxx.xxx.xxx
ETH_METHOD=admin_peers
PEERS=$(curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"'$ETH_METHOD'","params":[],"id":1}' $IP_PORT |  jq -c '.result[].network + {"run":"curl json"}')

printf "\n===== Now Geth Peers =====\n"
#printf "Peers: %s\n" $PEERS
echo $PEERS | jq .
#echo $PEERS >> /app/cronapplog/gethpeers.log
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"'$ETH_METHOD'","params":[],"id":1}' $IP_PORT |  jq -c '.result[].network + {"run":"curl json"}' >> /app/cronapplog/gethpeers.log



===== push image to docker-registry =====

nano /etc/docker/daemon.json
{
  "insecure-registries" : ["docker-registry:30500"]
}
service docker restart

docker login -u username -p password docker-registry:30500
docker-compose push

nano /etc/hosts
192.168.99.118 docker-registry

check https://docker-registry:30500/v2/_catalog  
#check result
{"repositories":["username/fakelog","username/gethpeers"]}


IF get error

ERROR: blob upload unknown

when docker-compose push

Deployment replicase 2 -> 1



apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry
  namespace: docker-registry
spec:
  replicas: 1


===== docker-registry ui =====
===== docker =====
docker run -d -p 80:80 -e URL=http://192.168.99.118 -e REGISTRY_URL=https://192.168.99.118:30500 -e DELETE_IMAGES=true joxit/docker-registry-ui:static

broswer http://192.168.99.118

[轉][教學] 用Drone, Kubernetes跟Helm,以及RBAC來建置你的CI/CD流程

Part 1 https://medium.com/@cloudsanchen/ci-cd-with-drone-kubernetes-and-helm-part-1-69c147046ffa

Part 2 https://medium.com/@cloudsanchen/ci-cd-with-drone-kubernetes-and-helm-part-2-65b43d790b30

part 3 https://medium.com/@cloudsanchen/%E6%95%99%E5%AD%B8-%E7%94%A8drone-kubernetes%E8%B7%9Fhelm-%E4%BB%A5%E5%8F%8Arbac%E4%BE%86%E5%BB%BA%E7%BD%AE%E4%BD%A0%E7%9A%84ci-cd%E6%B5%81%E7%A8%8B-part-3-de7273591bb

融資、融券

https://www.mobile01.com/topicdetail.php?f=291&t=5107288&p=1147#11470

上面的文章有提到融資、融券,其實這也是金融工具之一,融資說穿了就是向券商借錢,自已出40%的錢,券商出60%,所謂的融資斷頭就是股票價格跌到你自已出的錢賠光,這時券商就會強制賣出,在你持有期間你還要融資利息給券商大概4~6.x%都有可能,而且因為你槓桿放大2.5倍,你的交易手續費及交易稅也要放大2.5倍,這也是為什麼很多老手都建議不要融資玩股票,因為你很容易就會出局,而且持有的成本太高,會高過你的每年在股市中得到的現金殖利率。

融券是你付出股價九成的保證金,去放空個股,由於股價向上是沒有限制的,所以融券很容易會被軋爆,例如之前我看準放空宏碁的借券賣出兩、三年的成本介於12~14,14~16,我算準漲到26以上就會產生骨牌效應,空方軋空方,一路軋到33.x,只要軋到這價位,在這兩三年12~16元放空宏碁的人全部都得出局,這也是為啥很多版友賺到不少錢的原因,當初把空方軋到山頂上,空方不得不去回補,多不合理的價位空方都得吞,就算接下來股價跌下來,空方也沒救了,因為都已補了,錢就賠光了。

當市場上很多投資人不懂這些金融工具的弱點,所以很容易在這些金融工具的弱點下出局,但其實融資及融券也是能使用的,但前提是你的經驗夠老道,我舉個例,如果你今天可以一直在市場上賺錢,連續的賺,這時放大槓桿行不行?當然行,因為你都是常勝軍了,你投資都一直賺錢了,你當然放大槓桿也有機會能賺錢,但當你放大槓桿後,你要面對的就是較高的融資利息,及高2.5倍的交易稅及手續費,所以一般來說,融資在使用時都是短期上使用不會硬凹抱一年 ,抱兩年,抱三年的,當初我在開始賺錢後,我也是有使用過1/4金額的融資,也就是說我有150萬,我會操作200萬,當資金再變大時,就變1/10,也就是說500萬中有50萬是融資,而且這融資都是最後勝負已分時才出場的,到了資金水至1000萬以上後,我就沒有再使用過融資。

很多散戶連現股操作都贏不了錢,當面臨槓桿放大2.5倍,手續費,交易稅成本增加2.5倍,再加上持有時間愈久會產生4~6.x%的融資利息,種種不利的的因素在使用融資時一一顯現,試想一件很簡單的事,你在沒有這些不利的情況都贏不了了,更何況面對這些不利的情況下,你如何能贏,而且對持有現股的人只要基本面好,股價一時跌到哪都沒關係,但對融資戶來說,股價只要跌了3成左右,券商就會打電話來要你補錢,只要某個股價出現一兩天,不論多不合理,你就會被券商融資斷頭,斷完頭後,就算股價回升,那也不關你的事,但如果持有現股,股價一兩天的不合理低,你也不會有事,放了一年後,說不定股價就漲回來了,還賺了一年的股息(前提是基本面不變)。

融券在賺錢前我也有用過,因為使用過,所以對被軋爆及融券強制回補的規則也有所了解,我寫了這一篇的原因不是鼓勵大家使用融資或融券,而是你要了解這些金融工具,就算你不使用它,你也要了解他的優缺點,因為市場上很人會使用,你了解這些金融工具的優缺點時,你就間接的了解使用這些金融工具人的弱點,你何時該去踹它一腳讓他融資斷頭,何時該去向上拉最後一波讓他融券軋爆,當你了解他們弱點時,你就容易能抓住股價在上漲及下跌時這些人心理的變化,他們何時壓力很大,我說過,股市就是人與人之間的對戰,短線更是明顯,如果你這一些金融工具都不了解,每天就僅能幻想著股價快快漲,股價快快跌,你在對股價及局勢做判斷時就一點依據都沒有,所以準確率就會相對的低。

大家應該會發覺一件事,如果我全力在做某一檔股票時,我對股價的趨勢及判斷會相對的準確,因為那時觀察的就會很深入,會考慮融資、融券,借券,三大法人進出,權証買賣這些原因,在營收及基本面出來時,依據之前財報內容外資群會有的反應先行做預測,這些因素考慮的愈多,準確性就會愈高,最近我投入的資金水位不高,

我對於猜中美貿易戰的結果也不會有太大的興趣,我認為我的優勢在分析股個,所以猜中美貿易戰的結果這種局我就不會跟,我寧願中美貿易戰結束後,所有個股股價回到某一個水位,這時再來以基本面和別的投資者決勝負,我認為這才是我比別人有優勢的地方。

期貨,選擇權 是 股票避險

https://www.mobile01.com/topicdetail.php?f=291&t=5107288&p=1147#11469

請教 A大: 之前你提過,期貨,選擇權是給大戶,法人們避險用的,不是散戶們拿來賺零用錢. 我想很多這裡網友們跟我一樣,對'期貨,選擇權' 對應到短線上的應用應該也是很陌生.而你提供 CMoney 上的連結只是介紹 '期貨,選擇權' 的定義,其它部份並沒有作深入的探討. 可否請你,有機會,針對這個應用 '國際走勢加三大法人買貨,期貨,選擇權的進出去做判斷',給個例子,謝謝.


ans:01上還是有一些人專門是在做期貨,選擇權,期貨及選擇權如果你是婐操作(單純所有資金買期貨,沒有現貨部位),那無疑就是找死,股票中的贏家在股市中算是約一成的少數,婐操作期貨、選擇權的贏家可能1000個人中也找不到一人,其實道理不難理解,期貨及選擇權是拿來避險用的,不是拿來賭多空的,很多人想透過期貨、選擇權放大槓桿, 以期貨來說,放大槓桿最大為20倍,也就是說一個貪心的人用期貨放大槓桿到最大時,只要波動5%他就再見了,而選擇權更誇張,大概可以放大到160倍,大部份的散戶都愛用選擇權猜點數,投資當買樂透,中了就十倍,二十倍,甚至100倍的賺,錯了就全部都沒有。

我給你的cmoney投資小學堂中的期貨及選擇權只是讓你知道什麼是期貨,什麼是選擇權,當使用一項金融工具時,最基本的就是了解它的遊戲規則,例如很多人被融資斷頭,融券被強制回補,會發生這種事都是因為對這些金融工具不熟及使用不當所造成的,對外資群或法人來說,期貨及選擇權是用來保護手上現貨,因為有時局勢不明朗時,為了要保護手上現貨的獲利,就會透過期貨去避險,我舉個例,如果你有1000萬,假設你1000萬買了各大權值股,今天中美貿易戰2000億美金課了10%,川普恐赫說要把2000億美金在2019/3/1日加到25%,這時你該怎麼該?如果你是專業的基金經理人,你很注意績效,你當然不能像一般散戶坐以待斃讓上天決定自已的輸或贏,這時你當然要有一些動作,這時如果你總資金就1000萬,你都買光了,這時你能做的事就是按情勢做減碼,但交易有費用,給政府的要千分之三,買及賣各要給券商千分之1點5(各券商能有折扣),此時如果你一買一賣,這會造成你的操作成本上升,所以你當然要想一個操作成本比較低的避險方法。

這時期貨就出來了,因為可以放大槓桿20倍,也就是說,你操作資金1000萬,你買了950萬的現股,你拿50萬就能用期貨對你的現貨去做避險,因為槓桿為20倍,以期貨交易稅率為十萬分之2,買及賣十萬分之3,下圖有比較圖,買賣個股及期貨要付出的成本差了55倍,這是非常誇張的,之前我常說,你的弱點要是比別人少,你打敗別人的機率就愈高,交易成本當然也是需要考慮的因素之一,選擇權也是避險工具之一,用在短線上會有劇烈波動的情況。

大概了解一下期貨及選擇權後,這你你就要幻想一下,如果你是大部位的外資群,你要怎麼去使用這金融工具,使用的情境很多種,假設你打算要在1個月中買進1000億,這時你知道股市一定會因為你要買進的這一千億而讓指數上漲,此時你就會先去怖期貨多單,你也會去佈選擇權多單,當你買進這1000億時,股價上升,指數上升,你期貨的槓桿是20倍,選擇權是160倍。下一種情境,如果你要賣1000億,這時你也會知道股市會因為你接下來這一個月賣1000億而使指數下跌,在你開賣現貨前,你就先去佈期貨空單,再去佈選擇權空方,當你賣這一仟億現股,指數下跌時,你放空的期貨及選擇權可以彌補一些你股票賣的不漂亮的損失,另一種情境,當你現股已經賣了300億後,此時局勢不明,你害怕會漲上去,但買賣股票的成本太高,所以你就去佈期貨、選擇權多單,如果漲上去,雖然你沒有現股,但因為槓桿夠大,你還是能賺到和持有300億股票的獲利,如果期貨表現不如預期,你想硬凹,你還能用手上300億的現金去推升股價及指數。


當你了解這金融工具的使用方法後,你也知道法人在什麼情境下會去使用,這時你就能了解為什麼一般婐操作期貨、選擇權散戶輸的機會很大,外資群及法人手上有現金可以去操控指數的漲跌,外資群操作時僅是拿本金的5%當避險資金,而散戶是拿100%資金去賭方向,股市波動時,外資群手上有一大堆現貨,除了可以控制方向,也能拿來當擔保品,就算外資群整個看錯把拿來操作期貨的錢賠光,那也僅僅是賠了5%,手上的現貨放一年以台股殖利率4%來算,隨便也補得回去。

聽完後,你該了解,期貨及選擇權不能婐做了吧,當你了解期貨及選擇權的使用方法後,你只要去觀察外資群的期貨,選擇權,買賣現貨的變化,你會能看出一些端倪,

但你無法很準確的預測到轉折點

,我舉個例給你聽,如果我的部位夠大,大到左手丟300億,右手接300億這種水準,今天我左手丟300億出去,右手如果接到350億回來,那代表市場信心不足,如果我左手丟300億,右手接到200億,那代表市場信心充足,外資群何時去轉買為賣,或轉賣為買,這是不可測的,就像讓你猜我啥時會買,啥時會賣一樣,這是不可測的,

但外資群在操作時一定會有一個方向性,這是大部位的人都了解的事,當你買進50億時,你不可能明天馬上轉賣,一定是一步一步佈局上去,而在佈局的中期是很明確的,因為外資群部位很大,轉賣時也是很明顯的,像1/7到2/22日,外資群買了700億了,當外資群連續賣現貨或是期貨先減碼時,這就是徵兆。


短線可以看出一些端倪,這是沒有問題的,但是我個人比較偏好個股基本面,我個人覺得我的優勢是分析基本面,所以我不會去操作大盤,因為我認為還是存在不公平,畢竟外資群現貨,期貨、選擇權可以搭配使用,如果我的部位不夠大,持有的現貨和指數走勢不相同,這時我在使用現貨,期貨,選擇權就會輸外資群。

期貨資料參考網址