CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

Civil3Dで自動作図するUiPathのコードをPythonで書くには?

2023-03-12 20:25:22 | Civil3D

Civil3Dで自動作図するUiPathのコードをPythonで書いてください

Civil3DとUiPathの連携をPythonで実現する方法はいくつかありますが、ここではPythonのCOMライブラリであるwin32comを使用した方法を紹介します。

まず、win32comをインストールする必要があります。コマンドプロンプトやターミナルで以下のコマンドを実行してください。

pip install pywin32

次に、以下のコードを参考にして、必要なモジュールをインポートし、Civil3Dを起動して、ドキュメントを開くためのオブジェクトを作成します。

import win32com.client
# Civil3Dのオブジェクトを取得する
app = win32com.client.Dispatch("AutoCAD.Application")
doc = app.ActiveDocument
# 新しいドキュメントを作成する場合
# doc = app.Documents.Add()

次に、UiPathのInvoke Codeアクティビティで実行するような自動作図のコードをPythonに移植します。UiPathのInvoke Codeアクティビティでは、入力引数と出力引数を指定することができますが、Pythonでは関数を定義して、引数を渡すことで同じようなことができます。

以下は、簡単な例として、直線を描く関数を定義する例です。

def draw_line(start_point, end_point):
line = doc.ModelSpace.AddLine(start_point, end_point)
return line

この関数は、Civil3Dのドキュメントのモデルスペースに、指定された始点と終点の座標を持つ直線を追加し、作成された直線オブジェクトを返します。

この関数を呼び出すには、以下のようにします。

start_point = win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, [(0.0, 0.0, 0.0)]) end_point = win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, [(10.0, 0.0, 0.0)]) line = draw_line(start_point, end_point)

ここでは、始点と終点の座標を3つの要素を持つ配列で表し、それをwin32com.client.VARIANTでラップしています。これは、COMオブジェクトのメソッドやプロパティに渡すための形式です。

最後に、作成した自動作図のコードをPythonで記述し、必要な関数やメソッドを呼び出してCivil3Dのドキュメントを操作します。

以上の手順を参考にして、Civil3Dで自動作図するUiPathのコードをPythonで書くことができます。


PythonでMACD線を描画・リアルタイム分析

2023-03-12 20:18:28 | python
 
【FX×Python】MACDによるシストレ実践|外国為替相場のリアルタイムテクニカル分析・自動売買支援

【FX×Python】MACDによるシストレ実践|外国為替相場のリアルタイムテクニカル分析・自動売買支援

「PythonでMACDを用いたFXのテクニカル分析を実践したい」「システムトレードにテクニカル分析を適用しFX買い・売りシグナルを自動取得したい」このような要望にお応えします

DXCEL WAVE | AI・機械学習・データサイエンス・アナリティクス・RPA自動化・デジタルマーケティング・フィンテック等の最新デジタル技術を幅広く配信

PythonでMACD線を描画、さらにリアルタイムでテクニカル分析をしている。
そのソースコードも載ってる。
勉強になった!
これでSpectrometr separateインジケータをインポートできれば目標としているフーリエ解析逆指値トラリピEA開発にぐいっと近づく!
 
このサイトに載っているソースコードに
redのdata['macd']がblueのdata['macd_signal']を上回った時に現在の相場の20pips上に買いの逆指値を0.01ロット、
20pips下に売りの逆指値を0.01ロット入れるpythonのソースコードを付加して書いてください。
とChatGPTに質問してみたら・・・
 
YahooFinanceから取得したUSD/JPYの為替相場データを取得し、MACDテクニカル分析を行うPythonのソースコードは以下のようになります。
import numpy as np
import pandas as pd
import yfinance as yf
import talib data = yf.download(tickers = ' USDJPY=X', # 通貨ペア
period = '6mo', # データ取得期間
interval = '1d', # データ表示間隔 )
# 引数情報
fast_period = 10
# 短期指数移動平均線(EMA)の期間
slow_period = 25
# 長期指数移動平均線(EMA)の期間
signal_period = 8
# シグナル (MACDの指数平滑移動平均線)の期間
macd, macd_signal, macd_hist = talib.MACD(data['Close'],
# データ取得元
fast_period,
# 短期EMAの期間
slow_period,
# 長期EMAの期間
signal_period)
# シグナルの期間
# データ追加
data['macd'] = macd data['macd_signal'] = macd_signal import mplfinance as mpf
# データ分析範囲(直近6ヶ月分を指定)
period = 30 * 6 data = data.tail(period)
# グラフ可視化
graph = [ mpf.make_addplot(data['macd'], panel=2, color='red'), mpf.make_addplot(data['macd_signal'], panel=2, color='blue'), ] mpf.plot(data,
# データ
type='candle',
# グラフの種類('candle', 'line'等が指定可能)
volume=True,
# 出来高の表示有無
mav=(5,15), # 移動平均線(短期移動平均線の日数、長期移動平均線の日数)
style='yahoo', # グラフスタイル addplot=graph,
# 連結するグラフ情報
figratio=(12,9), # グラフ縦横の比率 )
 
redのdata['macd']がblueのdata['macd_signal']を上回った時に現在の相場の20pips上に買いの逆指値を0.01ロット、
20pips下に売りの逆指値を0.01ロット入れるpythonのソースコードを付加して書いてください。
 
# redのdata['macd']がblueのdata['macd_signal']を上回った場合
if data['macd'][-1] > data['macd_signal'][-1]:
    # 現在の相場の20pips上に買いの逆指値を0.01ロット入れる
    buy_stop_price = data['Close'][-1] + 0.0020
    print('Buy stop order:', buy_stop_price, '0.01 lots')
else:
    # 現在の相場の20pips下に売りの逆指値を0.01ロット入れる
    sell_stop_price = data['Close'][-1] - 0.0020
    print('Sell stop order:', sell_stop_price, '0.01 lots')
 
このコードは、MACDのラインとシグナルラインを比較して、MACDがシグナルラインを上回った場合に買いの逆指値を、下回った場合に売りの逆指値を設定します。現在の相場の20pipsを逆指値に加えるには、単純にdata['Close'][-1]に0.0020を足すことで実現できます。また、ロット数は0.01固定で設定しています。
 
と返答があった。マジか?

ZOZOTOWNお宝キーワードマイニングツール開発企画

2023-03-12 18:44:36 | python
ZOZOTOWNで高値で売れている商品に関するキーワードをデータマイニングするプログラムをpythonで書いてください

以下は、Pythonを使ってZOZOTOWNの高値で売れている商品に関するキーワードをデータマイニングするための基本的なスクリプトです。ただし、データを取得するためのWebスクレイピングや、データの解析方法によっては、ZOZOTOWNの利用規約に違反することがあるため、注意が必要です。

import requests from bs4 import BeautifulSoup # 商品ページのURLを指定する url = "https://zozo.jp/search/?p_cd=&t_p=1&prl=&cate=&brand=&size=&color=&price_min=&price_max=&order=2&cntr=&tag_id=&tag_ids=&sale=&key=&c_id=&p_ptype=&s_id=&ev_id=&s_mode=&block_no=&p_kind=&p_kind_s=&p_kind_n=&block_cd=&sex=&sale=&rl=&brand_id=&year=&season=&searchmode=category&category=0300&pageno=1" # WebページのHTMLを取得する response = requests.get(url) html = response.content # BeautifulSoupを使ってHTMLを解析する soup = BeautifulSoup(html, "html.parser") # 商品名を含む要素を取得する item_elements = soup.select("div[data-product-name]") # 商品名を取得する item_names = [e.get("data-product-name") for e in item_elements] # 商品価格を含む要素を取得する price_elements = soup.select("div[data-product-price]") # 商品価格を取得する item_prices = [e.get("data-product-price") for e in price_elements] # 商品名と価格を表示する for name, price in zip(item_names, item_prices): print(f"{name}: {price}")

このスクリプトは、ZOZOTOWNの「レディースファッション」カテゴリーの商品ページの1ページ目から、商品名と価格を取得して表示します。商品名や価格以外にも、カテゴリーやブランド、色などの情報を取得することができます。また、同じようなスクリプトを複数のページに対して実行することで、より多くのデータを取得することができます。ただし、ZOZOTOWNの利用規約に違反しないように注意してください。




楽天お宝キーワードマイニングツール開発企画

2023-03-12 18:40:16 | python
楽天で高値で売れている商品に関するキーワードをデータマイニングするプログラムをpythonで書いてください

楽天で高値で売れている商品に関するキーワードをデータマイニングするプログラムをPythonで書くためには、楽天APIを使用する必要があります。以下は、楽天APIを使用して、楽天市場の商品情報を取得し、売れ筋ランキングの上位商品からキーワードを抽出するPythonコードの例です。

import requests import json # APIのURLとパラメーターを設定する url = "https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20170628" params = { "applicationId": "YourApplicationID", # 楽天APIのアプリケーションIDを設定する "affiliateId": "YourAffiliateID", # 楽天APIのアフィリエイトIDを設定する "format": "json", "genreId": "0", # ジャンルIDを指定する。0はすべてのジャンルを指定することを意味する "page": "1", # 取得するページ番号を指定する。1ページあたり30件の商品情報を取得する } # APIにリクエストを送信する response = requests.get(url, params=params) # レスポンスのJSONデータをパースする data = json.loads(response.text) # 売れ筋ランキングの上位商品からキーワードを抽出する for item in data["Items"]: if int(item["rank"]) <= 10: # 上位10位までの商品について print(item["itemName"]) # 商品名を表示する print(item["itemPrice"]) # 商品価格を表示する print(item["itemCaption"]) # 商品説明を表示する # 商品説明からキーワードを抽出する処理を記述する

この例では、楽天APIのIchibaItem/Ranking APIを使用して、売れ筋ランキングの上位商品を取得しています。売れ筋ランキングの上位10位までの商品について、商品名、商品価格、商品説明を表示しています。また、商品説明からキーワードを抽出する処理を記述することで、楽天で高値で売れている商品に関するキーワードを取得することができます。具体的なキーワード抽出の方法は、自然言語処理の技術を使用することが一般的です。







Amazonお宝キーワードマイニングツール開発企画

2023-03-12 18:36:28 | python
amazonで高値で売れている商品に関するキーワードをデータマイニングするプログラムをpythonで書いてください

ご質問いただきありがとうございます。以下は、Amazonのトップセラー商品からキーワードを取得するPythonスクリプトの例です。プログラムは、AmazonのAPIを使用してトップセラー商品を取得し、商品の説明からキーワードを抽出します。

import requests from bs4 import BeautifulSoup import pandas as pd # AmazonのAPIからトップセラー商品を取得 url = "https://www.amazon.com/gp/bestsellers/?ref_=nav_cs_bestsellers" html = requests.get(url).text soup = BeautifulSoup(html, "html.parser") top_seller_items = soup.find_all("div", {"class": "a-section a-spacing-none aok-relative"}) # 各商品からキーワードを抽出してリストに追加 keywords = [] for item in top_seller_items: product_url = "https://www.amazon.com" + item.find("a", {"class": "a-link-normal"})["href"] product_html = requests.get(product_url).text product_soup = BeautifulSoup(product_html, "html.parser") description = product_soup.find("div", {"id": "productDescription"}).get_text().strip() words = description.split() for word in words: if len(word) > 3 and word not in keywords: keywords.append(word) # 抽出されたキーワードをデータフレームに格納して表示 df = pd.DataFrame(keywords, columns=["Keyword"]) print(df.head())

このスクリプトは、Amazonのトップセラー商品ページから商品のURLを取得し、商品の説明からキーワードを抽出して、データフレームに格納して表示します。このスクリプトを実行するには、requests、BeautifulSoup、pandasのライブラリが必要です。また、AmazonのAPIを使用するためには、APIキーが必要になります。


Python 3 エンジニア認定基礎試験

2023-03-12 18:21:00 | python
Python 3 エンジニア認定基礎試験
基礎試験

基礎試験

Python 3 エンジニア認定基礎試験 【キャンペーン】受験宣言をしてPython書籍・データ分析書籍をもら…

Python試験・資格、データ分析試験・資格を運営する一般社団法人Pythonエンジニア育成推進協会のページです。

試験対策は今のところ、この2冊のみ。

出題範囲:主教材であるオライリー・ジャパン「Pythonチュートリアル(2021年9月1日より第四版に対応します)」

徹底攻略Python 3 エンジニア認定[基礎試験]問題集 https://amzn.asia/d/cJwTqid


2023年3月13日発売予定とのことだったが、3月12日の今日ジュンク堂書店に行ってきたらすでに売りに出されていた。
薄すぎて頼りにならないと感じたので買わなかった。
この資格自体があまり価値がないみたいなので、どうせ資格を取るならRuby技術者認定試験かOracleJAVASilverの勉強をした方がマシだと思った。

ちなみにさらに上級の試験としてPython 3 エンジニア認定実践試験がある。

エメラルドボアの革財布

2023-03-12 18:13:09 | 日記
Python言語のことばかり考えてたらグリーンパイソンやエメラルドボアのことが頭に浮かんだ。そして、飼育してみたいとか、革財布を買いたいとかいろいろ妄想が始まっちゃってwww


〔GGマーモント〕パイソン ジップアラウンドウォレット

¥ 187,000 (税込)
その他



https://www.google.com/search?q=%E3%82%A8%E3%83%A1%E3%83%A9%E3%83%AB%E3%83%89%E3%83%9C%E3%82%A2%E9%9D%A9%E8%B2%A1%E5%B8%83&client=ms-android-sharp&prmd=sivn&sxsrf=AJOqlzVdjnPf0ujGgPJ_bqSRfM9k3QLxog:1678611780462&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjOiY-XhNb9AhVhh1YBHZhTBjcQ_AUoAnoECAcQAg&biw=360&bih=664&dpr=4

ヤフオクお宝キーワードマイニングツール開発企画

2023-03-12 17:54:33 | python
ヤフオクで高値で売れている商品に関するキーワードをヤフオクからデータマイニングして取得し、他所で安く仕入れて転売して稼げるのではないか?と思ったのがアイデアの原点。

ヤフーオークションで高値で売れている商品に関するキーワードをデータマイニングするプログラムをpythonで書いてください

ヤフーオークションにはWeb APIが提供されていないため、Pythonを使用してヤフーオークションから情報を収集するためには、Webスクレイピングを行う必要があります。以下は、PythonのBeautifulSoupとrequestsを使用して、ヤフーオークションから最も高値で売れている商品に関するキーワードを収集するプログラムの例です。

import requests
from bs4 import BeautifulSoup
from collections import Counter

# キーワードを収集するための関数
def get_top_keywords(url):
# 商品ページを取得する
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# キーワードを収集する
keywords = []
for keyword_elem in soup.find_all('a', {'class': 'ProductTag__tagLink___3JZW8'}):
keywords.append(keyword_elem.get_text().strip())

# キーワードの出現頻度をカウントする
top_keywords = Counter(keywords).most_common(5)
return [keyword[0] for keyword in top_keywords]

# 最も高値で売れた商品のURLを取得する
response = requests.get('https://auctions.yahoo.co.jp/closedsearch/closedsearch?select=7&p=%E6%9C%80%E9%AB%98%E5%80%A4%E3%81%A7%E5%A3%B2%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B')
soup = BeautifulSoup(response.content, 'html.parser')
top_item_url = soup.find('ul', {'class': 'SearchResult__list___2um0X'}).find('a')['href']

# キーワードを収集する
top_keywords = get_top_keywords(top_item_url)

# 結果を表示する
print('最も高値で売れている商品のURL:', top_item_url)
print('関連するキーワード:')
for keyword in top_keywords:
print('-', keyword)
このプログラムでは、以下の手順に従って処理を行います。

requestsモジュールを使用して、ヤフーオークションの「最も高値で売れている商品」ページを取得します。
BeautifulSoupを使用して、最も高値で売れている商品のURLを取得します。
取得したURLから商品ページを取得し、BeautifulSoupを使用して、商品ページから関連するキーワードを取得します。
取得したキーワードの出現頻度をカウントし、上位5つのキーワードを表示します。
このプログラムは、ヤフーオークションのWebサイトの構造が変更された場合には正しく動作しない可能性があります。また、WebスクレイピングはWebサイトの利用規約に違反する場合があります

フーリエ変換の二次元でのスペクトル表示では位相も含めて表示できないのでは問題

2023-03-12 11:49:45 | 日記
フーリエ変換のスペクトルでは横軸が周波数、縦軸が振幅の二つしか表現できなかった。
そこで「位相はどうなった?位相も含めてスペクトルやグラフの表示はできないのか?」と素朴な疑問が生じたのでヤフーで検索してみた。


x軸を周波数、y軸を振幅、z軸を位相で表せば、曲面の表示ができるのではないか?と考えた。

AWSクラウドプラクティショナー試験 Route53編二問

2023-03-12 07:20:51 | AWS
AWSのRoute53に関するAWSクラウドプラクティショナー試験の4択問題2問と、その正解・解説の作成をお願いいたします。

問題1: Route 53を使用して、既存のドメイン名をAmazon S3バケットにマッピングする場合、次のうちどれが必要ですか? A. Amazon S3バケットで静的ウェブサイトホスティングを有効にする B. Amazon S3バケットでオブジェクトレベルのアクセス許可を設定する C. Amazon S3バケットでAmazon CloudFrontディストリビューションを作成する D. Amazon S3バケットでドメイン名を変更する 正解:A 解説:ドメイン名をAmazon S3バケットにマッピングするには、Amazon S3バケットで静的ウェブサイトホスティングを有効にする必要があります。これにより、バケットにアクセスするためのエンドポイントURLが生成されます。このURLを使用して、Route 53でドメイン名を指すことができます。Bは誤りです。オブジェクトレベルのアクセス許可は、ファイルを個別に設定するためのものであり、ドメイン名をAmazon S3バケットにマッピングするために必要ありません。Cは誤りです。Amazon CloudFrontディストリビューションを作成することは、コンテンツをキャッシュするためのものであり、ドメイン名をAmazon S3バケットにマッピングするために必要ありません。Dは誤りです。Amazon S3バケットでドメイン名を変更することはできません。 問題2: Route 53のどの機能が、負荷分散をサポートしますか? A. ヘルスチェック B. レイテンシールーティング C. フェイルオーバールーティング D. グローバルアクセラレーター 正解:B 解説:Route 53のレイテンシールーティングは、負荷分散をサポートする機能の一つです。レイテンシールーティングは、ユーザーの場所に基づいて、最も近いサーバーにトラフィックをルーティングすることができます。これにより、トラフィックを均等に分散することができます。ヘルスチェックは、エンドポイントの状態を監視して、エンドポイントが利用できる場合にのみトラフィックをルーティングするためのものであり、フェイルオーバールーティングは、特定のエンドポイ
・・・バックレましたwww



AIによるプログラミングサービスまとめ

2023-03-12 07:10:41 | ChatGPT
プログラミングを一気に効率化。AIによるプログラミングサービスまとめ
プログラミングを一気に効率化。AIによるプログラミングサービスまとめ - ニフクラ mobile backend(mBaaS)お役立ちブログ

プログラミングを一気に効率化。AIによるプログラミングサービスまとめ - ニフクラ mobile backend(mBaaS)お役立ちブログ

現在、様々な作業をAI/機械学習が行うようになっています。絵を描いたり、テキストを分析したりする一方で、アプリ開発で使えそうなAIサービスとしてプログラミングコード生...

ニフクラ mobile backend(mBaaS)お役立ちブログ



OpenAI Codex

2023-03-12 07:03:42 | ChatGPT

OpenAI Codex:プログラミングを知らなくてもゲーム開発やプログラミング言語変換を可能にする人工知能

OpenAI Codex:プログラミングを知らなくてもゲーム開発やプログラミング言語変換を可能にする人工知能

OpenAI Codex:プログラミングを知らなくてもゲーム開発やプログラミング言語変換を可能にする人工知能

1.OpenAI Codex:プログラミングを知らなくてもゲーム開発やプログラミング言語変換を可能にする人工知能まとめ・自然言語を使った指示をプログラムに変換するOpenAI Code...

WebBigData



IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場

2023-03-12 06:41:33 | ChatGPT

IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場

IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場

IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場

テキストから高度なイラストを生成するAIや、人間と自然な対話を可能にするAIが最近話題になっています。 この人間と自然な会話をするAIチャットの代表的なサービスであるCh...