コーディングの方法は? - ページ 232 1...225226227228229230231232233234235236237238239...347 新しいコメント scottyb 2010.04.25 16:05 #2311 アイデア OK少年少女 私はCUF(よく使われる関数)を作成するというアイデアを考えていました - 私が読んだ限りでは、EA内からスクリプトを呼び出すことはできません。 しかし、私は毎回車輪を再設計することを余儀なくされるのが嫌いで、また、この方法で物事がうまくいくと確信しているので、回避策を考えています。 スクリプトは誰もが知っているように、ロードされると、ショートカットキーを押した場合を除き、二度とロードされることはありません。 これは、すべてのEAで見られる大きな問題ですが、彼らは継続する前に、いくつかの時間条件またはいくつかの奇妙な "スリープ "条件が通過するのを待って立ち往生しているように見えるということです。 このため、一瞬でキャンセルして売るということが起こりにくく、数秒で大儲けできるような非常に不安定な状況では大きな失敗となります。 解決策は? グローバル変数で動作するCUFFインジケータを作成しますか? 誰もがこれを試してみました。 インジケータは、その完璧なようにすべてのtickを 循環させる。 darien95 2010.04.25 18:05 #2312 複数の指標とバーの条件が満たされたときに、音や電子メールによるアラートを送信するコードを作成するにはどうすればよいですか? 削除済み 2010.04.25 21:55 #2313 こんにちは。 メタストックに内蔵されているref()とstochmomentum()はメタトレーダーのいくつかの関数で実装されているのでしょうか? thnx scottyb 2010.04.26 01:10 #2314 ダリアン 上記のグローバルの例を見てください。メールや口笛、やりたいことをするスクリプトを見つけて、それをコード化してください。 BurtonW 2010.04.26 23:50 #2315 グローバルで 以下のようなIndicatorにGlobalVaribleを追加することは可能でしょうか? if ( トレンド[2]0 && ボリューム[0]>1 && !UpTrendAlert) { GlobalVariableSet("trend "+Symbol(),1)。 // Print("UP" + GlobalVariableGet("trend "+Symbol())); メッセージ = " 買い "+Symbol()+" M "+Period()+":BUYのシグナル"; if ( AlertMode>0 ) Alert (Message); UpTrendAlert=true、DownTrendAlert=false。 で、そのGlobalVariableをEAで呼び出します。 int init() { GlobalVariableDel("trend "+Symbol())。 トレンド = GlobalVariableGet("trend "+Symbol())。 買い = (トレンド== 1); 売り = (トレンド== 2)。 すべてのヘルプを感謝します。 How to code? プライスチャンネル [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 scottyb 2010.04.28 07:35 #2316 しかし、1つ以上の通貨を取引する場合は、うまくいきません。 Mike 2010.04.29 00:40 #2317 配列のトラブルで困っています。 こんにちは。 ある未決済注文がカットオフポイント(例えば$-1000)より損失が大きいかどうかを判断する関数を 作ろうとしています。 この関数は、OrderTicket() と OrderProfit() を2つの別々の配列に格納し、カットオフ・ポイントに達したことを示すために return (1) で終了することになっています。 これらの配列に値を格納する前に、OrderTicket() 配列をチェックして、この注文がすでに申請されているかどうかを確認する必要があります。 もしOrderTicket番号がすでに配列に格納されているなら、それは、その注文が追加で1000ドルを失ったかどうかを判断し、もしそうなら、OrderProfit()配列の値を新しい値で置き換え、新しいカットオフポイントに達したことを示すためにreturn(1)で終了しなければならないことになっています。もし注文が追加で1000ドルを失っていなければ(カットオフと呼ばれる)、注文が追加で1000ドルを失っていないことを示すために return(0) を返さなければなりません。 私はそれがかなり動作していると思うが(よく分からない?)、何らかの理由で配列は正当な値と共に多くの '0' 値で満たされる。配列の出力は次のようになります。 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 431 ResumeArrayPrices[k] = -3042 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 425 ResumeArrayPrices[k] = -3042 ResumeArrayTickets[k] = 386 ResumeArrayPrices[k] = -1008 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 371 ResumeArrayPrices[k] = -12933 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 320 ResumeArrayPrices[k] = -6057 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 249 ResumeArrayPrices[k] = -5076 ResumeArrayTickets[k] = 241 ResumeArrayPrices[k] = -1017 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 230 ResumeArrayPrices[k] = -13122 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 ResumeArrayTickets[k] = 186 ResumeArrayPrices[k] = -4068 ResumeArrayTickets[k] = 128 ResumeArrayPrices[k] = -1008 ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0 [/code] The following is my actual code: [code] int CheckForResume() { ResumeCheck = TimeLocal()+(PERIOD_M1*60)*5; } int arraycount1 =1; int arraycount2 =1; bool found = false; int k; for (int i = 0; i<OrdersTotal();i++) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL)) { if (OrderProfit()< Cutoff) { for (k=0; k<ArraySize(ResumeArrayTickets); k++) { if ((ResumeArrayTickets[k] == OrderTicket()) && ResumeArrayTickets[k] !=0) { found = true; if (ResumeArrayPrices[k] + Cutoff < OrderProfit()) { return (0); } else { Print ("ELSE"); arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1); arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1); ResumeArrayTickets[k] = OrderTicket(); ResumeArrayPrices[k] = OrderProfit(); return (1); } } } if (found == false) { arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1)' arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1); ResumeArrayTickets[k] = OrderTicket(); ResumeArrayPrices[k] = OrderProfit(); return (1); } } } return (0); } } How to code? Ordersend issue??? アスク! StevePams 2010.04.29 19:33 #2318 1バーで1回EAをリフレッシュさせる こんにちは、EAをリフレッシュして、最初に初期化されたときのように反応させる方法はありますか?(リスタートのように)1Barに1回行われる必要があります。例えば、30分に一度です。 RefreshRates()とWindowRedraw()はそれを適切に行いません。 私はまた、同様にいくつかの変数を保持し、データを失うことなくしたいと思います。 これを実現する方法はありますか? また、インジケータでもこのようなことができたらと思います。 よろしくお願いします。 削除済み 2010.05.02 01:06 #2319 プログラミングに関するヘルプ 皆さん、こんにちは。 私は、チャートの時間に基づいて通貨の強さを表示するために通貨の強さのメーターを修正するために取り組んでいます。 現在、使用しているコードは以下の通りです。 aHigh = MarketInfo(mySymbol,MODE_HIGH); // set a high today aLow = MarketInfo(mySymbol,MODE_LOW); // set a low today aBid = MarketInfo(mySymbol,MODE_BID); // set a last bid aAsk = MarketInfo(mySymbol,MODE_ASK); MODE_HIGHとMODE_LOWは、その日の高値と安値を取得することは理解しています。 どうすれば、現在の時間 枠の高値と安値を取得できるでしょうか? ありがとうございます。 P.S. 私はプログラマーではないので、小さな単語を使ってください:) luxinterior 2010.05.02 02:54 #2320 iHighとiLowの機能については、ヘルプマニュアルをご覧ください。 グッドラック ラックス 1...225226227228229230231232233234235236237238239...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
アイデア
OK少年少女
私はCUF(よく使われる関数)を作成するというアイデアを考えていました - 私が読んだ限りでは、EA内からスクリプトを呼び出すことはできません。
しかし、私は毎回車輪を再設計することを余儀なくされるのが嫌いで、また、この方法で物事がうまくいくと確信しているので、回避策を考えています。
スクリプトは誰もが知っているように、ロードされると、ショートカットキーを押した場合を除き、二度とロードされることはありません。
これは、すべてのEAで見られる大きな問題ですが、彼らは継続する前に、いくつかの時間条件またはいくつかの奇妙な "スリープ "条件が通過するのを待って立ち往生しているように見えるということです。 このため、一瞬でキャンセルして売るということが起こりにくく、数秒で大儲けできるような非常に不安定な状況では大きな失敗となります。
解決策は? グローバル変数で動作するCUFFインジケータを作成しますか? 誰もがこれを試してみました。 インジケータは、その完璧なようにすべてのtickを 循環させる。
複数の指標とバーの条件が満たされたときに、音や電子メールによるアラートを送信するコードを作成するにはどうすればよいですか?
こんにちは。
メタストックに内蔵されているref()とstochmomentum()はメタトレーダーのいくつかの関数で実装されているのでしょうか?
thnx
ダリアン 上記のグローバルの例を見てください。メールや口笛、やりたいことをするスクリプトを見つけて、それをコード化してください。
グローバルで
以下のようなIndicatorにGlobalVaribleを追加することは可能でしょうか?
if ( トレンド[2]0 && ボリューム[0]>1 && !UpTrendAlert)
{
GlobalVariableSet("trend "+Symbol(),1)。
// Print("UP" + GlobalVariableGet("trend "+Symbol()));
メッセージ = " 買い "+Symbol()+" M "+Period()+":BUYのシグナル";
if ( AlertMode>0 ) Alert (Message);
UpTrendAlert=true、DownTrendAlert=false。
で、そのGlobalVariableをEAで呼び出します。
int init() {
GlobalVariableDel("trend "+Symbol())。
トレンド = GlobalVariableGet("trend "+Symbol())。
買い = (トレンド== 1);
売り = (トレンド== 2)。
すべてのヘルプを感謝します。
しかし、1つ以上の通貨を取引する場合は、うまくいきません。
配列のトラブルで困っています。
こんにちは。
ある未決済注文がカットオフポイント(例えば$-1000)より損失が大きいかどうかを判断する関数を 作ろうとしています。
この関数は、OrderTicket() と OrderProfit() を2つの別々の配列に格納し、カットオフ・ポイントに達したことを示すために return (1) で終了することになっています。
これらの配列に値を格納する前に、OrderTicket() 配列をチェックして、この注文がすでに申請されているかどうかを確認する必要があります。
もしOrderTicket番号がすでに配列に格納されているなら、それは、その注文が追加で1000ドルを失ったかどうかを判断し、もしそうなら、OrderProfit()配列の値を新しい値で置き換え、新しいカットオフポイントに達したことを示すためにreturn(1)で終了しなければならないことになっています。もし注文が追加で1000ドルを失っていなければ(カットオフと呼ばれる)、注文が追加で1000ドルを失っていないことを示すために return(0) を返さなければなりません。
私はそれがかなり動作していると思うが(よく分からない?)、何らかの理由で配列は正当な値と共に多くの '0' 値で満たされる。配列の出力は次のようになります。
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 431 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 425 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 386 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 371 ResumeArrayPrices[k] = -12933
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 320 ResumeArrayPrices[k] = -6057
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 249 ResumeArrayPrices[k] = -5076
ResumeArrayTickets[k] = 241 ResumeArrayPrices[k] = -1017
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 230 ResumeArrayPrices[k] = -13122
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 186 ResumeArrayPrices[k] = -4068
ResumeArrayTickets[k] = 128 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
[/code]
The following is my actual code:
[code]
int CheckForResume()
{
ResumeCheck = TimeLocal()+(PERIOD_M1*60)*5;
}
int arraycount1 =1;
int arraycount2 =1;
bool found = false;
int k;
for (int i = 0; i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
if (OrderProfit()< Cutoff)
{
for (k=0; k<ArraySize(ResumeArrayTickets); k++)
{
if ((ResumeArrayTickets[k] == OrderTicket()) && ResumeArrayTickets[k] !=0)
{
found = true;
if (ResumeArrayPrices[k] + Cutoff < OrderProfit())
{
return (0);
}
else
{
Print ("ELSE");
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1);
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
if (found == false)
{
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1)'
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
return (0);
}
}
1バーで1回EAをリフレッシュさせる
こんにちは、EAをリフレッシュして、最初に初期化されたときのように反応させる方法はありますか?(リスタートのように)1Barに1回行われる必要があります。例えば、30分に一度です。
RefreshRates()とWindowRedraw()はそれを適切に行いません。
私はまた、同様にいくつかの変数を保持し、データを失うことなくしたいと思います。
これを実現する方法はありますか?
また、インジケータでもこのようなことができたらと思います。
よろしくお願いします。
プログラミングに関するヘルプ
皆さん、こんにちは。
私は、チャートの時間に基づいて通貨の強さを表示するために通貨の強さのメーターを修正するために取り組んでいます。 現在、使用しているコードは以下の通りです。
aLow = MarketInfo(mySymbol,MODE_LOW); // set a low today
aBid = MarketInfo(mySymbol,MODE_BID); // set a last bid
aAsk = MarketInfo(mySymbol,MODE_ASK);MODE_HIGHとMODE_LOWは、その日の高値と安値を取得することは理解しています。 どうすれば、現在の時間 枠の高値と安値を取得できるでしょうか?
ありがとうございます。
P.S. 私はプログラマーではないので、小さな単語を使ってください:)
iHighとiLowの機能については、ヘルプマニュアルをご覧ください。
グッドラック
ラックス