EAを爆速で開発出来るのですが、
使う側も資格が必要です
- 変数
- 関数
- 四則演算
- EAの構成の把握
- EAを作る手順の理解
最低限これを知ってないとChatgptで開発する効果を感じられないと思います。
ある程度口出し出来る知識がないとまともに使えません。
Chatgptは欲しい回答を明確にしておかないと正確度が下がります。
Chatgptは前提条件を与えないとまともな回答が得られません。
初心者では欲しい情報をインプットするのも
どこまで出来る?
ということを理解してないとChatgptに無茶ぶりしてまともな回答が得られません。
Chatgptは入社して3カ月講習を終えた新入社員みたいなレベルだと思ってください。
普通のEA開発者のレベルが100だとしたらChatgptのレベルは20ぐらいです。
Pythonは開発者レベルだと思います。
ChatgptにPythonを100とした場合のMQL4の理解度を聞いてみました。
Pythonはレベル高いのでMQLよりもPythonの開発に効力を発揮しそうです。
プロンプト
まずは前提条件を言いますので回答は全部聞いて「回答してください」のタイミングで回答してください
以下の条件でMQL4を使ってMT4のEAを作成してください。
- MagicNumberは999959999
- 最初の関数を回答する場合は最初の行に#property strictをいれること
- 最初の関数を回答する場合はグローバルスコープの変数をまとめて書くこと
- 一個前のローソク足を使用する
- RSI > 70 でショート
- RSI < 30 でロング
- RSI < 40 でショート決済
- RSI > 60 でロング決済
- リミットストップはつけないこと
以下の手順で作ってください
- void position_entry(int side) をつくる
- void position_close(int side) をつくる
- int position_count(int side) をつくる
- テクニカル指標を計算して新規注文判断を返すbool is_buy()、bool is_sell()をつくる
- テクニカル指標を計算して決済判断を返すbool is_buy_close()、bool is_sell_close()をつくる
- 各関数を組み合わせてOnTick()をつくる
注意点は
- OnTick()内部で各関数を呼び出すこと
- position_countはMagicNumberを含めること
- 現在のポジション情報の取得にfor (int i = OrdersTotal() – 1; i >= 0; i–)を使うこと
- ポジション数は整数です
プロンプト2欲しい情報を要求する
Chatgptの回答に文字制限があるので、途中で止まることがしばしばあります。
そこで、回答を区切れば関数をブロックで書いてもらえます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
#property strict // グローバルスコープの変数 extern int MagicNumber = 999959999; void position_entry(int side) { double lot = 0.1; int slippage = 3; int stoploss = 0; int takeprofit = 0; int ticket; if (side == OP_BUY) { ticket = OrderSend(Symbol(), OP_BUY, lot, Ask, slippage, stoploss, takeprofit, "Buy Order", MagicNumber, 0, Green); } else if (side == OP_SELL) { ticket = OrderSend(Symbol(), OP_SELL, lot, Bid, slippage, stoploss, takeprofit, "Sell Order", MagicNumber, 0, Red); } if (ticket <= 0) { Print("Error in opening position. Error code: ", GetLastError()); } } void position_close(int side) { int total = OrdersTotal(); for (int i = total - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber) { if ((side == OP_BUY && OrderType() == OP_SELL) || (side == OP_SELL && OrderType() == OP_BUY)) { int ticket = OrderClose(OrderTicket(), OrderLots(), Bid, 3, White); if (ticket <= 0) { Print("Error in closing position. Error code: ", GetLastError()); } } } } } } int position_count(int side) { int count = 0; int total = OrdersTotal(); for (int i = total - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber) { if ((side == OP_BUY && OrderType() == OP_BUY) || (side == OP_SELL && OrderType() == OP_SELL)) { count++; } } } } return count; } |
初っ端から間違っている回答が届く。
これだとBUYでありSELLであるという矛盾している条件式が入っているのでEA動かないです。
Chatgptは結構な確率でミステイクするので見抜けなければ使いこなせません。
Chatgptは仕事は早いけど失敗が多い部下のような感じですね。
部下に任せっきりではダメですので結局使う人も知識が必要です。
BybitがGoogleのIPアドレス規制をしているためです。国内のVPSなら使…
自分のbotで使ってるAPIキーを使用しているんですが、 You have br…
pybit 最新版にコードを変更しました。コードとrequirements.tx…
お返事ありがとうございます。はい。pybit==2.3.0になっております。
コードはあっていると思います。rewuirements.txtは「pybit==…