コーディングの方法は? - ページ 268 1...261262263264265266267268269270271272273274275...347 新しいコメント 削除済み 2011.07.31 09:52 #2671 別の問題 クロス==1ではなく、MA_04_1H > MA_14_1Hとすることで、問題を解決しました。でも、どうしたら、買い、終わり、買い、終わり、買い、終わり、売り、終わり、などの取引をフィルタリングできるのでしょうか?0.17,-0.18,-0.21,-0.15,といった具合にセント単位で残高を食いつぶしているのですが......。 今、小さいロットを買って利益が出たら、その注文を閉じて、クロスが起こるまで新しい大きいロットを開くということを実装しようとしているのですが、上記の問題が解決できないようです.........。 どなたか、小さな無駄な取引を除外する方法をご存じないでしょうか? ashokram1 2011.07.31 17:00 #2672 このコードにaflが必要です こんにちは。 このコードのaflが必要です #プロパティ indicator_separate_window #プロパティ indicator_buffers 8 #property indicator_color1 C'0x66,0xB3,0xFF'. #property indicator_color2 ドジャーブルー #property indicator_color3 C'0x00,0x67,0xCE' (インジケーターカラー3 #property indicator_color4 ホワイト #property indicator_color5 C'0xFF,0x33,0x33' #property indicator_color6 C'0xC4,0x00,0x00'です。 #property indicator_color7 C'0x8C,0x00,0x00'です。 #property indicator_color8 C'0x82,0x24,0x00' (インジケーターカラー8 extern int Periode = 30; extern bool invert_strength = FALSE; extern string CurrencyPair = ""; extern string NOTE0 = "currencypairを大文字で入力"; extern string NOTE1 = "EURUSDのように"; extern string NOTE2 = "現在のシンボルは空のままにする"; extern string NOTE3 = "if you have a mini account"; extern string NOTE4 = "add a \m" e.g. EURUSDm"; extern string NOTE4 = "add a \m" e.g. EURUSDm"; double g_ibuf_132[]; double g_ibuf_136[]; double g_ibuf_140[]; double g_ibuf_140[]; double g_ibuf_144[]; double g_ibuf_148[]; double g_ibuf_152[]; double g_ibuf_156[]です。 double g_ibuf_160[]; double gda_unused_164[]; int init() { SetIndexBuffer(0, g_ibuf_132); SetIndexBuffer(1, g_ibuf_136)。 SetIndexBuffer(2, g_ibuf_140); SetIndexBuffer(2, g_ibuf_140); SetIndexBuffer(3, g_ibuf_144); SetIndexBuffer(4, g_ibuf_148); SetIndexBuffer(4, g_ibuf_148) SetIndexBuffer(5, g_ibuf_152); SetIndexBuffer(5, g_ibuf_152); SetIndexBuffer(6, g_ibuf_156); SetIndexBuffer(7, g_ibuf_160); SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF') を設定します。 SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue).を設定します。 SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE'); SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue) SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, 白); SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, 白); SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33'); SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, 白) SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00'); SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00'); SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00'); SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00') SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00'); for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL)を設定します。 if (CurrencyPair == "") CurrencyPair = Symbol(); if(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol(); if (iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol(); IndicatorShortName(CurrencyPair + "(" + Periode + ")"); (1)を返します。 int deinit() { return (0); int start() { double ld_8; int li_0 = IndicatorCounted(); if (li_0 < 0) return (-1); if (li_0 > 0) li_0--; for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) { { { { { int li_4 = Bars - li_0; li_4 >= 0; li_4 --) ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4); if (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0); if (ld_8 <= 45.0) { { もし、? if (ld_8 42.0) drawblock(0, 0, 0, 5, 0, 0, 0, li_4); else { if (ld_8 38.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4); else { if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 5, 0, li_4); else drawblock(0, 0, 0, 0, 0, 5, li_4); } } } else { if (ld_8 >= 55.0) {。 if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, li_4); それ以外の場合 { if (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, li_4); else drawblock(0, 0, 5, 0, 0, 0, 0, li_4); } } else drawblock(0, 0, 0, 5, 0, 0, 0, 0, li_4); } } return (0); } void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) { g_ibuf_132[ai_32] = ai_0; g_ibuf_136[ai_32] = ai_4; g_ibuf_140[ai_32] = ai_8; g_ibuf_144[ai_32] = ai_12; g_ibuf_148[ai_32] = ai_16; g_ibuf_152[ai_32] = ai_16; g_ibuf_152[ai_32] = ai_20; g_ibuf_156[ai_32] = ai_24; g_ibuf_160[ai_32] = ai_28; } このロジックについて教えてください。 ありがとうございます。 kr How to code? どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Code EA to use 削除済み 2011.08.01 06:59 #2673 買い、決済、買い、決済、または売り、決済、売り、決済をしない方法。 お願いです...利益の出ないトレードを避ける方法を知りたいのです... 削除済み 2011.08.01 09:42 #2674 緊急のヘルプです。インジケータをEA(オートトレーダー)に変換する 私はプログラマーですが、mql4プログラミングの 初心者です。 あるインジケータについてEA(オートトレーダー)を作成しようとしています。 インジケータを添付します。このインジケータは良いトレンドシグナルを出します。 今、このトレンドシグナルに関するオートトレーダーを作りたいと思っています。 アルゴリズム。 ================================================== もしダウン信号があれば、売り注文を開き、前の買い注文を閉じます。 アップ信号は、オープン買い注文とクローズ前の売り注文の場合 続けて ================================================== 私はちょうどこの指標に関する自動売買に手動で取引したい。 誰もが私を助けることができますか?私は試してみましたが、結果を得ることはできません 私はそれが良いオートトレーダーになるだろうと思います。私を助けてください。 ファイル: trendsignal_1.mq4 4 kb TomthebombNL 2011.08.04 13:51 #2675 簡単な質問ですが、答えが見つかりません... なぜこれが機能するのか、どなたか教えてください。 価格 = MarketInfo("GBPJPY",MODE_ASK); これはうまくいきません(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "である場合)。 price = MarketInfo(symbol[9],MODE_ASK); ?? Min Li 2011.08.08 00:47 #2676 TomthebombNL: なぜこれが動作するのか、どなたか教えていただけませんか。価格 = MarketInfo("GBPJPY",MODE_ASK)。 となり、これは(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "の場合)そうではありません。 価格 = MarketInfo(symbol[9],MODE_ASK); ?? あなたが提示した情報から、私はこれが動作するはずであると100%確信しています、実際、私はそれを証明するために簡単なテストを行いました。あなたのコードには何か他の間違いがあるに違いありません。 削除済み 2011.08.08 01:13 #2677 codersguru: jdunさん一番簡単な逆張り(売り→買い&買い→売り)が変わっている。 if(signal0 < signal1 ) GlobalVariableSet("TM0",1); if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE] To: [CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1); if(signal0 < signal1) GlobalVariableSet("TM0",0); nice!この情報をありがとうございました。 Min Li 2011.08.08 02:05 #2678 配列が文字列として定義されていない可能性が高いと思われます。 Mladen Rakic 2011.08.08 04:44 #2679 GBPJPY "が配列の9番目の要素である場合、mql記法でのインデックスは9ではなく8です(mql記法では配列の1番目の要素はインデックス0)ので、その場合、この形式を使用する必要があります。 price = MarketInfo(symbol[8],MODE_ASK); たぶん、それが問題なのでしょう。 TomthebombNL: なぜこれが動作するのか、どなたか教えてください。価格 = MarketInfo("GBPJPY",MODE_ASK)。 とすると、こうなりません(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "である場合)。 価格 = MarketInfo(symbol[9],MODE_ASK); ?? TomthebombNL 2011.08.12 07:05 #2680 10番目の項目で、symbol[9]を使って取得したのですが、この数字は正しいのですが、説明が間違っていたようです。不思議なことに、これはうまくいきます。 高値 = iHigh(symbol[9], ...) これは私に高値を与える。私の宣言は次のとおりです。 私の宣言は:文字列symbol[]またはそれは文字列[]symbol[]のようにする必要がありますか? もし私がAlert(symbol[9])でそれを印刷しようとすると、また空白のスペースを与えてしまいます。 これは私のコードで、私はアルパリの5桁のブローカーを使っています(アラートは何らかの理由で私にゼロを与えます)。 ダブル高、低、価格、距離、プラッツ。 int i,j,ticket, waarde; 文字列 symbol[]; 文字列 zoekplaatssymbol; //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- double usd=0.0; double chf=0.0; double eur=0.0; double gbp=0.0; double aud=0.0; double cad=0.0; double jpy=0.0; double nzd=0.0; symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" , "eurcad", "audcad", "audjpy", "cadjpy", "eurnzd", "audnzd", "nzdjpy"}となります。 int total=OrdersTotal(); // zoekplaatssymbol = symbol[9]; // waarde = zoekplaats(zoekplaatssymbol); price = MarketInfo(symbol[9],MODE_ASK); Alert(価格); } How to code? 初心者の方からの質問 MQL5 MT5 MetaTrader エラー、バグ、質問 1...261262263264265266267268269270271272273274275...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
別の問題
クロス==1ではなく、MA_04_1H > MA_14_1Hとすることで、問題を解決しました。でも、どうしたら、買い、終わり、買い、終わり、買い、終わり、売り、終わり、などの取引をフィルタリングできるのでしょうか?0.17,-0.18,-0.21,-0.15,といった具合にセント単位で残高を食いつぶしているのですが......。
今、小さいロットを買って利益が出たら、その注文を閉じて、クロスが起こるまで新しい大きいロットを開くということを実装しようとしているのですが、上記の問題が解決できないようです.........。
どなたか、小さな無駄な取引を除外する方法をご存じないでしょうか?
このコードにaflが必要です
こんにちは。
このコードのaflが必要です
#プロパティ indicator_separate_window
#プロパティ indicator_buffers 8
#property indicator_color1 C'0x66,0xB3,0xFF'.
#property indicator_color2 ドジャーブルー
#property indicator_color3 C'0x00,0x67,0xCE' (インジケーターカラー3
#property indicator_color4 ホワイト
#property indicator_color5 C'0xFF,0x33,0x33'
#property indicator_color6 C'0xC4,0x00,0x00'です。
#property indicator_color7 C'0x8C,0x00,0x00'です。
#property indicator_color8 C'0x82,0x24,0x00' (インジケーターカラー8
extern int Periode = 30;
extern bool invert_strength = FALSE;
extern string CurrencyPair = "";
extern string NOTE0 = "currencypairを大文字で入力";
extern string NOTE1 = "EURUSDのように";
extern string NOTE2 = "現在のシンボルは空のままにする";
extern string NOTE3 = "if you have a mini account";
extern string NOTE4 = "add a \m" e.g. EURUSDm"; extern string NOTE4 = "add a \m" e.g. EURUSDm";
double g_ibuf_132[];
double g_ibuf_136[];
double g_ibuf_140[]; double g_ibuf_140[];
double g_ibuf_144[];
double g_ibuf_148[];
double g_ibuf_152[];
double g_ibuf_156[]です。
double g_ibuf_160[];
double gda_unused_164[];
int init() {
SetIndexBuffer(0, g_ibuf_132);
SetIndexBuffer(1, g_ibuf_136)。
SetIndexBuffer(2, g_ibuf_140); SetIndexBuffer(2, g_ibuf_140);
SetIndexBuffer(3, g_ibuf_144);
SetIndexBuffer(4, g_ibuf_148); SetIndexBuffer(4, g_ibuf_148)
SetIndexBuffer(5, g_ibuf_152); SetIndexBuffer(5, g_ibuf_152);
SetIndexBuffer(6, g_ibuf_156);
SetIndexBuffer(7, g_ibuf_160);
SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF') を設定します。
SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue).を設定します。
SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE'); SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue)
SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, 白); SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, 白);
SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33'); SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, 白)
SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00'); SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00');
SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00'); SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00')
SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00');
for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL)を設定します。
if (CurrencyPair == "") CurrencyPair = Symbol();
if(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol(); if (iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();
IndicatorShortName(CurrencyPair + "(" + Periode + ")");
(1)を返します。
int deinit() {
return (0);
int start() {
double ld_8;
int li_0 = IndicatorCounted();
if (li_0 < 0) return (-1);
if (li_0 > 0) li_0--;
for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) { { { { { int li_4 = Bars - li_0; li_4 >= 0; li_4 --)
ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4);
if (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0);
if (ld_8 <= 45.0) { { もし、?
if (ld_8 42.0) drawblock(0, 0, 0, 5, 0, 0, 0, li_4);
else {
if (ld_8 38.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4);
else {
if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 5, 0, li_4);
else drawblock(0, 0, 0, 0, 0, 5, li_4);
}
}
} else {
if (ld_8 >= 55.0) {。
if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, li_4);
それ以外の場合 {
if (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, li_4);
else drawblock(0, 0, 5, 0, 0, 0, 0, li_4);
}
} else drawblock(0, 0, 0, 5, 0, 0, 0, 0, li_4);
}
}
return (0);
}
void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {
g_ibuf_132[ai_32] = ai_0;
g_ibuf_136[ai_32] = ai_4;
g_ibuf_140[ai_32] = ai_8;
g_ibuf_144[ai_32] = ai_12;
g_ibuf_148[ai_32] = ai_16; g_ibuf_152[ai_32] = ai_16;
g_ibuf_152[ai_32] = ai_20;
g_ibuf_156[ai_32] = ai_24;
g_ibuf_160[ai_32] = ai_28;
}
このロジックについて教えてください。
ありがとうございます。
kr
買い、決済、買い、決済、または売り、決済、売り、決済をしない方法。
お願いです...利益の出ないトレードを避ける方法を知りたいのです...
緊急のヘルプです。インジケータをEA(オートトレーダー)に変換する
私はプログラマーですが、mql4プログラミングの 初心者です。
あるインジケータについてEA(オートトレーダー)を作成しようとしています。
インジケータを添付します。このインジケータは良いトレンドシグナルを出します。
今、このトレンドシグナルに関するオートトレーダーを作りたいと思っています。
アルゴリズム。
==================================================
もしダウン信号があれば、売り注文を開き、前の買い注文を閉じます。
アップ信号は、オープン買い注文とクローズ前の売り注文の場合
続けて
==================================================
私はちょうどこの指標に関する自動売買に手動で取引したい。
誰もが私を助けることができますか?私は試してみましたが、結果を得ることはできません![](https://c.mql5.com/forextsd/smiles/frown.png)
私はそれが良いオートトレーダーになるだろうと思います。私を助けてください。
簡単な質問ですが、答えが見つかりません...
なぜこれが機能するのか、どなたか教えてください。
価格 = MarketInfo("GBPJPY",MODE_ASK);
これはうまくいきません(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "である場合)。
price = MarketInfo(symbol[9],MODE_ASK);
??
なぜこれが動作するのか、どなたか教えていただけませんか。
価格 = MarketInfo("GBPJPY",MODE_ASK)。
となり、これは(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "の場合)そうではありません。
価格 = MarketInfo(symbol[9],MODE_ASK);
??あなたが提示した情報から、私はこれが動作するはずであると100%確信しています、実際、私はそれを証明するために簡単なテストを行いました。あなたのコードには何か他の間違いがあるに違いありません。
jdunさん
一番簡単な逆張り(売り→買い&買い→売り)が変わっている。
if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]
To:
[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);
if(signal0 < signal1) GlobalVariableSet("TM0",0);nice!この情報をありがとうございました。
配列が文字列として定義されていない可能性が高いと思われます。
GBPJPY "が配列の9番目の要素である場合、mql記法でのインデックスは9ではなく8です(mql記法では配列の1番目の要素はインデックス0)ので、その場合、この形式を使用する必要があります。
たぶん、それが問題なのでしょう。
なぜこれが動作するのか、どなたか教えてください。
価格 = MarketInfo("GBPJPY",MODE_ASK)。
とすると、こうなりません(symbolが文字列の配列で、9番目のエントリーが "GBPJPY "である場合)。
価格 = MarketInfo(symbol[9],MODE_ASK);
??10番目の項目で、symbol[9]を使って取得したのですが、この数字は正しいのですが、説明が間違っていたようです。不思議なことに、これはうまくいきます。
高値 = iHigh(symbol[9], ...)
これは私に高値を与える。私の宣言は次のとおりです。
私の宣言は:文字列symbol[]またはそれは文字列[]symbol[]のようにする必要がありますか?
もし私がAlert(symbol[9])でそれを印刷しようとすると、また空白のスペースを与えてしまいます。
これは私のコードで、私はアルパリの5桁のブローカーを使っています(アラートは何らかの理由で私にゼロを与えます)。
ダブル高、低、価格、距離、プラッツ。
int i,j,ticket, waarde;
文字列 symbol[];
文字列 zoekplaatssymbol;
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
double usd=0.0;
double chf=0.0;
double eur=0.0;
double gbp=0.0;
double aud=0.0;
double cad=0.0;
double jpy=0.0;
double nzd=0.0;
symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" ,
"eurcad", "audcad", "audjpy", "cadjpy", "eurnzd", "audnzd", "nzdjpy"}となります。
int total=OrdersTotal();
// zoekplaatssymbol = symbol[9];
// waarde = zoekplaats(zoekplaatssymbol);
price = MarketInfo(symbol[9],MODE_ASK);
Alert(価格);
}