コーディングのヘルプ - ページ 485

 
NWFstudent:
例えば、1時間足で取引をしていて、4時間足で表示するmtfインジケータを使う場合、次のタイムフレームを使うように設定したいのですが、どうすればいいですか?

例えば、私は1時間足チャートで取引しており、インジケータは4時間足のデータを使用しています。私のタイムフレームを4時間足に交換したとき、インジケータを4時間足の上のタイムフレームに交換し、今は日足データを使用するようにしたいのです。

このスレッドを見つけたのですが、私はコーダーではないので、どこにコードを貼り付ければいいのか、実際のインジケータに何か修正が必要なのかがわかりません。

次のタイムフレーム - MQL4フォーラム

これを追加したいインジケータは、エリートフォーラムにある「Traders Dynamic_Cb_ssa norm Index_alerts+arrows new 1.01」です。

NWFstudent

こちらで簡単な方法を見ることができます :https://www.mql5.com/en/forum/181187/page24(3つ目の上位タイムフレームを自動的に選択するところまで含む)

 

こんにちは、mladenです。

しばらくはこれで最後...です。

もうお分かりだと思いますが、私はADXの大ファンです。

私はADXを様々な方法で使用し、それに反して取引を行うことはありません。

また、スリーダックというインディケータの原理も好きで、この2つを組み合わせてみたこともあります。

この2つを組み合わせてみたのですが、うまくいきませんでした。

もう1度試してみてから、他のものを試してみようと思います。

添付のインジケータは、私が見る限り、インジケータが言及されている領域は54,57,60行目 だけです。

それ以外はすべてタイムフレームに関連しているように見えます。

私は、'sma & SMA'の記述をすべて削除 し、代わりにadx & ADXにしようとしましたが、うまくいきません。

可能であれば、(時間をかけずに)その方法を教えてください。

良い週末をお過ごしください。

ファイル:
 
Jeeves:
こんにちは、mladenさん。

しばらくはこれで最後...です。

もうお分かりだと思いますが、私はADXの強力なファンです。

私はADXを様々な方法で使用しており、ADXに逆らって取引を行うことはない。

また、スリーダックというインディケータの原理も好きで、この2つを組み合わせてみたこともあります。

この2つを組み合わせてみたのですが、うまくいきませんでした。

もう1度試してみてから、他のものを試してみようと思います。

添付のインジケータは、私が見る限り、インジケータが言及されている領域は54,57,60行目 だけです。

それ以外はすべてタイムフレームに関連しているように見えます。

私は、'sma & SMA'の記述をすべて削除し、代わりにadx & ADXにしようとしましたが、うまくいきません。

もし可能であれば、(時間をかけずに)その方法を教えてください。

良い週末をお過ごしください。

Jeeves

そのインディケータではsmaの代わりにadxを使うことはできません。Adxの値は完全に異なる値の範囲にあり、そのインジケータがコードで行っているようにBidと比較することはできません。

 
mladen:
NWFstudent これを見れば、簡単にできることがわかります :https://www.mql5.com/en/forum/181187/page24(3つ上の時間枠を自動的に選択するところまで含む)

ありがとうございます、直截的なコピーペーストでした

 

拝啓。

どなたか教えてください。

この "OrderModify関数の 無効なチケット "について何が起こったのでしょうか?

しかし、他にはそれを交換することができます。

extern double lots = 0.1;

extern double stopsize = 200;

extern double profsize = 100;

extern double Risk =0.01;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }.

int deinit() { return(0); }.

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (オーダーセレクト(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_SELL, getLots(Risk), Bid, 3, 0, 0, NULL,LimeGreen);

stop=(Bid+stopsize*Point)。

prof=(Bid-profsize*Point)とします。

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

 
hock87:
拝啓。

どなたか教えてください。

この「OrderModify関数の無効なチケット」については何が起こったのでしょうか?

しかし、他ではそれを取引することができます。

これは、あなたの注文が受理/実行されず、OrderSend() 関数が 結果として -1 を返したことを意味します。新しく作成された注文を変更する前に、チケット番号が -1 以上であるかどうかを常に確認してください。

 

単純なファイル(履歴ファイルではない)の使用例があれば教えてください。

 
mladen:
xtractalpha 何が起こっているのか、テストしてみなければなりませんね。何が問題なのかがわかったら、ここに投稿します。

親愛なるムラデン。

私のリクエストについて、何か最新情報はありますか?

週末を楽しんでください。

ありがとうございました。

Thierry

 
xtractalpha:
親愛なるMladen。

私のリクエストについて、何か最新情報はありますか?

週末をお楽しみください。

ありがとうございました。

Thierry

Thierry

コードの74行目と137行目を削除してください(両方の行からLotsizeCalc()関数を呼び出しており、そうすることで人為的に各ティックで ロットサイズを押し上げています)。

これらの行を削除した後、それは問題なく動作するはずです。

 
mladen:
Thierry

コードの74行目と137行目を削除してください(両方の行からLotsizeCalc()関数を呼び出しており、そうすることで人為的に各ティックでロットサイズを押し上げています)。

それらの行を削除した後、それはOKに動作するはずです

迅速な対応ありがとうございました。

行を削除しましたが、EAはまだ間違ったロットサイズでトレードを開始しています。

なぜEAが私のマーチンゲールコードを無視するのか、本当に不思議です。なぜなら、EAはロットサイズ0.10か0.20でしか取引を開始しないからです...。 (写真参照)。

ライトショットによるスクリーンショット

私は私のlotizecalc関数が問題である必要があると思います。私は私が取引を失ったときにマーチンゲール量によって私のロットサイズを乗算する関数が必要です。

私のmartingaleamountは1.5であり、私のlotizeは0.10です。私は行の5貿易を失うとき、これはロットサイズがされることを意味します:0.1、0.15、0.22、0.34、0.51 。

double LotsizeCalc() { if(lastOrderProfit()<0 && tradeNumber <=MaximumTrades) { tradeNumber++; malot=OrderLots()*MartingaleAmount; } else { malot = LotSize; tradeNumber=1; } return(malot); }

誰もがこのコードをチェックすることができますか?

事前にありがとうございました。

ティエリー