コーディングの方法は? - ページ 47 1...404142434445464748495051525354...347 新しいコメント Beno 2007.11.03 15:13 #461 ありがとうございます。 あなたの言いたいことは大体わかりました。前にやってみて、行き詰まったらまた質問します。 乾杯 antone 2007.11.04 10:40 #462 MrPip: 以下、赤字で訂正。 ロバート ロバートさん、ありがとうございました。 削除済み 2007.11.05 05:23 #463 MTFインジケータを使用したバーカウントダウン MTF = マルチタイムフレームインジケータ double BarCountDownInSec() { double g; g=Time[0]+Period()*60-TimeCurrent()。 return(g); } 上記の関数は、現在のチャートのバーの2回目のカウントダウンを表示します。つまり、5分足のチャートに配置すれば、5分足のバーごとに秒読みを表示することになります。 Q: 5分足チャートにいるときに、15分足のバー(つまり5分足が3本)の秒数をカウントダウンするにはどうすればよいのでしょうか? yyc196 Yauw 2007.11.05 12:14 #464 私のプログラミングの問題 (BUG) こんにちは。 どなたか、このバグを解決する手助けをしていただけませんか?私は、コードをコンパイルし直さない限り、描画ヒストグラムが表示されないだけで、ほとんどそこにいました。 お願いします。お願いします!お願いします Regards ファイル: stoch_project.mq4 5 kb Beno 2007.11.05 19:41 #465 iCustom問題 EAのiCustom部分に使用するindiの文字列名は何ですか? 私が試したのは MT4-LevelStop-Reverse-vBO-4 MT4-LevelStop-Reverse-を試してみました。 MT4-LevelStop-Reverse(レベルストップ-リバース vBO-4 vB0.4 vtsbh2483- MT4-LevelStop-Reverse-」です。+ indicator_version + "( ということで、次に何をすればいいのかさっぱりわかりません。 それともATRMode,Manual Mode等の文字列名を入れなければならないのでしょうか? 何か良い方法があれば教えてください。 ファイル: mt4-levelstop-reverse-vb0-4.mq4 12 kb Beno 2007.11.05 19:43 #466 どなたかエラーを確認できますか?このコードのどこにエラーがあるのかわかりません。私は取得し続けます。これを指摘する手助けがあれば、とても助かります。ありがとうございます。 LongSig 変数が定義されていません。 //+------------------------------------------------------------------+ //| オープンポジションを計算する //+------------------------------------------------------------------+ int CalculateCurrentOrders() { (現在の注文を計算する) 買い=0; 売り=0; string symbol=Symbol(); //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId) { if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) buys++; if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) sells++; } } //---- 注文数量を返す if(buys>0) return(buys); else return(-sells)。 } //+------------------------------------------------------------------+ //| 未決済注文の状況を確認する| //+------------------------------------------------------------------+ void CheckForSignals() { (シグナルチェック) buysig=false; sellsig=false; closebuy=false; closesell=false。 double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift).Double SRL = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift); double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233); double SRL = iCustom (NULL,000, "MT4-LevelStop-Reverse",ATRPeriod,ATRSmoothing,ArrowDistance,234); double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234); double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift); double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift); double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1); double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1); double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift) bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0; bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0.0.QQE_TrLevelSlow <50.0.0.QQE_RsiMaPrev = QQE_TrLevelSlowPrev bool LongSig2 = MOM>0.0; bool ShortSig2 = MOM<0.0; bool LongSig3 = SRL>Pivot; bool ShortSig3 = SRS<Pivot; buysig = LongSig && LongSig2 && LongSig3; sellsig = ShortSig && ShortSig2 && ShortSig3; closebuy=sellsig; closesell=buysig; } void CheckForOpen() { if (last==Time[0])リターン。 int res,ord; ダブルエントリー、ストップ、プロフィット。 ord=CalculateCurrentOrders()。 if (ord!=0) CheckForClose(); ord=CalculateCurrentOrders()。 //---- 買いの条件 if (buys<ConsecutiveTrades && buysig) { (買い<連続取引 && 買い) res=OpenAtMarket(OP_BUY,Lots)。 if (res<0) Print("Error opening BUY order :",ErrorDescription(GetLastError()))。 else last=Time[0]; //---- 売り条件 if (-sells<ConsecutiveTrades && sellsig) { {. res=OpenAtMarket(OP_SELL,Lots)。 if (res<=0) Print("Error openingSELL order:",ErrorDescription(GetLastError()))。 else last=Time[0]; } } int OpenAtMarket(int mode,double lot) { (intモード,ダブルロット) int res,tr,col; double openprice,sl,tp; tries=0; while (res<=0 && tries<OrderTriesNumber) { (res<0&&tries<オーダートライ数) tr=0; while (tr<5 && IsTradeAllowed()) { tr++; Sleep(2000); }. RefreshRates(); if (モード==OP_SELL) { 。 openprice=Bid; col=Red; } else { //openprice=nd(Ask)。 openprice=Ask; col=Blue; } res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+expertId,expertId,0,col).を送信。 tries++; } return(res); } ITを修正しました。 How to code? アスク! EAが複数のペアで実行されない、助けが必要 MrPip 2007.11.05 19:58 #467 vB0-4のOの代わりに数字の0を使ったリストの1番を試してみてください。 ロバート Beno: EAのiCustom部分に使用するこのIndiの文字列名は何でしょうか?私が試したのは MT4-LevelStop-Reverse-vBO-4(レベルストップ-リバース-vBO-4 MT4-LevelStop-Reverse-を試してみました。 MT4-LevelStop-Reverse(レベルストップ-リバース vBO-4 vB0.4 vtsbh2483- MT4-LevelStop-Reverse-」です。+ indicator_version + "( ということで、次に何をすればいいのかさっぱりわかりません。 それともATRMode,Manual Mode等のString Nameを入れる必要があるのでしょうか? ご協力をお願いします。 Beno 2007.11.05 20:01 #468 Pipsさん、ありがとうございます。 整理しました antone 2007.11.06 06:29 #469 MrPip: 以下、赤字で修正 ロバート 私はこれを試したが、うまくいかないようだ...私は一日に一回だけ取引をしたい... for(int a=0;a<OrdersTotal();a++){ if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true) { if (OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number) { if (TimeDay(OrderOpenTime()) >= TimeDay(TimeCurrent()))Trade = false とします。 if (TimeDay(OrderOpenTime())<TimeDay(TimeCurrent()))のとき)取引 = true } } } MrPip 2007.11.06 09:16 #470 antone: これを試してみましたが、うまくいかないようです。 他のEAでも使用していますが、正常に動作しています。 今日のオープンではなく、今日のクローズしたトレードをチェックして います。 開始時の使い方は if (LastTradeClosedToday()) return(0); // 新規に取引を開始するためのコードはこちら //+------------------------------------------------------------------+ //| LastTradeClosedToday|(最後の取引終了日)。 //| 最後の取引が今日終了したかどうかを確認するために履歴をチェックします。 //+------------------------------------------------------------------+ bool LastTradeClosedToday() { int cnt, total; bool Close; total = HistoryTotal(); for (cnt = total - 1; cnt >= 0; cnt--) { OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol()!=Symbol())継続。 if (OrderMagicNumber() != MagicNumber) continue; if (OrderMagicNumber() != MagicNumber) continue; クローズド = false if (OrderType() == OP_BUY) { if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())) { クローズド = true。 } cnt = 0; } if (OrderType() == OP_SELL) { if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())) { クローズド = true。 cnt = 0; } } return (Closed); } How to code? [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 このフォーラムに投稿された「mqlコード」の機能を作成することは可能ですか? 1...404142434445464748495051525354...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます。
あなたの言いたいことは大体わかりました。前にやってみて、行き詰まったらまた質問します。
乾杯
以下、赤字で訂正。 ロバート
ロバートさん、ありがとうございました。
MTFインジケータを使用したバーカウントダウン
MTF = マルチタイムフレームインジケータ
double BarCountDownInSec()
{
double g;
g=Time[0]+Period()*60-TimeCurrent()。
return(g);
}
上記の関数は、現在のチャートのバーの2回目のカウントダウンを表示します。つまり、5分足のチャートに配置すれば、5分足のバーごとに秒読みを表示することになります。
Q: 5分足チャートにいるときに、15分足のバー(つまり5分足が3本)の秒数をカウントダウンするにはどうすればよいのでしょうか?
私のプログラミングの問題 (BUG)
こんにちは。
どなたか、このバグを解決する手助けをしていただけませんか?私は、コードをコンパイルし直さない限り、描画ヒストグラムが表示されないだけで、ほとんどそこにいました。
お願いします。お願いします!お願いします
Regards
iCustom問題
EAのiCustom部分に使用するindiの文字列名は何ですか?
私が試したのは
MT4-LevelStop-Reverse-vBO-4
MT4-LevelStop-Reverse-を試してみました。
MT4-LevelStop-Reverse(レベルストップ-リバース
vBO-4
vB0.4
vtsbh2483-
MT4-LevelStop-Reverse-」です。+ indicator_version + "(
ということで、次に何をすればいいのかさっぱりわかりません。
それともATRMode,Manual Mode等の文字列名を入れなければならないのでしょうか?
何か良い方法があれば教えてください。
どなたかエラーを確認できますか?このコードのどこにエラーがあるのかわかりません。私は取得し続けます。これを指摘する手助けがあれば、とても助かります。ありがとうございます。
LongSig 変数が定義されていません。
//+------------------------------------------------------------------+
//| オープンポジションを計算する
//+------------------------------------------------------------------+
int CalculateCurrentOrders() { (現在の注文を計算する)
買い=0; 売り=0;
string symbol=Symbol();
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId)
{
if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) buys++;
if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) sells++;
}
}
//---- 注文数量を返す
if(buys>0) return(buys);
else return(-sells)。
}
//+------------------------------------------------------------------+
//| 未決済注文の状況を確認する|
//+------------------------------------------------------------------+
void CheckForSignals() { (シグナルチェック)
buysig=false;
sellsig=false;
closebuy=false;
closesell=false。
double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift).Double SRL = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift);
double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233); double SRL = iCustom (NULL,000, "MT4-LevelStop-Reverse",ATRPeriod,ATRSmoothing,ArrowDistance,234);
double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234);
double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift);
double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift);
double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1);
double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1);
double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift)
bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0;
bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0.0.QQE_TrLevelSlow <50.0.0.QQE_RsiMaPrev = QQE_TrLevelSlowPrev
bool LongSig2 = MOM>0.0;
bool ShortSig2 = MOM<0.0;
bool LongSig3 = SRL>Pivot;
bool ShortSig3 = SRS<Pivot;
buysig = LongSig && LongSig2 && LongSig3;
sellsig = ShortSig && ShortSig2 && ShortSig3;
closebuy=sellsig;
closesell=buysig;
}
void CheckForOpen() {
if (last==Time[0])リターン。
int res,ord;
ダブルエントリー、ストップ、プロフィット。
ord=CalculateCurrentOrders()。
if (ord!=0) CheckForClose();
ord=CalculateCurrentOrders()。
//---- 買いの条件
if (buys<ConsecutiveTrades && buysig) { (買い<連続取引 && 買い)
res=OpenAtMarket(OP_BUY,Lots)。
if (res<0) Print("Error opening BUY order :",ErrorDescription(GetLastError()))。
else last=Time[0];
//---- 売り条件
if (-sells<ConsecutiveTrades && sellsig) { {.
res=OpenAtMarket(OP_SELL,Lots)。
if (res<=0) Print("Error openingSELL order:",ErrorDescription(GetLastError()))。
else last=Time[0];
}
}
int OpenAtMarket(int mode,double lot) { (intモード,ダブルロット)
int res,tr,col;
double openprice,sl,tp;
tries=0;
while (res<=0 && tries<OrderTriesNumber) { (res<0&&tries<オーダートライ数)
tr=0; while (tr<5 && IsTradeAllowed()) { tr++; Sleep(2000); }.
RefreshRates();
if (モード==OP_SELL) { 。
openprice=Bid;
col=Red;
} else {
//openprice=nd(Ask)。
openprice=Ask;
col=Blue;
}
res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+expertId,expertId,0,col).を送信。
tries++;
}
return(res);
}
ITを修正しました。
vB0-4のOの代わりに数字の0を使ったリストの1番を試してみてください。
ロバート
EAのiCustom部分に使用するこのIndiの文字列名は何でしょうか?
私が試したのは
MT4-LevelStop-Reverse-vBO-4(レベルストップ-リバース-vBO-4
MT4-LevelStop-Reverse-を試してみました。
MT4-LevelStop-Reverse(レベルストップ-リバース
vBO-4
vB0.4
vtsbh2483-
MT4-LevelStop-Reverse-」です。+ indicator_version + "(
ということで、次に何をすればいいのかさっぱりわかりません。
それともATRMode,Manual Mode等のString Nameを入れる必要があるのでしょうか?
ご協力をお願いします。Pipsさん、ありがとうございます。
整理しました
以下、赤字で修正 ロバート
私はこれを試したが、うまくいかないようだ...私は一日に一回だけ取引をしたい...
{
if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)
{
if (TimeDay(OrderOpenTime()) >= TimeDay(TimeCurrent()))Trade = false とします。
if (TimeDay(OrderOpenTime())<TimeDay(TimeCurrent()))のとき)取引 = true
}
}
}これを試してみましたが、うまくいかないようです。
他のEAでも使用していますが、正常に動作しています。
今日のオープンではなく、今日のクローズしたトレードをチェックして います。
開始時の使い方は
if (LastTradeClosedToday()) return(0);
// 新規に取引を開始するためのコードはこちら
//+------------------------------------------------------------------+
//| LastTradeClosedToday|(最後の取引終了日)。
//| 最後の取引が今日終了したかどうかを確認するために履歴をチェックします。
//+------------------------------------------------------------------+
bool LastTradeClosedToday()
{
int cnt, total;
bool Close;
total = HistoryTotal();
for (cnt = total - 1; cnt >= 0; cnt--)
{
OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol()!=Symbol())継続。
if (OrderMagicNumber() != MagicNumber) continue; if (OrderMagicNumber() != MagicNumber) continue;
クローズド = false
if (OrderType() == OP_BUY)
{
if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()))
{
クローズド = true。
}
cnt = 0;
}
if (OrderType() == OP_SELL)
{
if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()))
{
クローズド = true。
cnt = 0;
}
}
return (Closed);
}