どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1003 1...99699799899910001001100210031004100510061007100810091010...1178 新しいコメント f-rafail 2016.01.28 15:19 #10021 Сергей 2016.01.28 16:48 #10022 以下のような実装方法をアドバイスしてください。チャート上にカスタムラインがあり、その数を "n "本とする。価格がある線に近づいたときに、価格値を取得するにはどうしたらよいですか? ありがとうございました。 Tema97 2016.01.29 14:53 #10023 ターゲットが(価格が(100pips)「ライン」の上にあれば「買い」)である。))また、この質問では、現時点での移動平均の 価格を知るにはどうすればよいのでしょうか?よろしくお願いします ) Alexey Viktorov 2016.01.29 15:19 #10024 Tema97:ターゲットが(価格が(100pips)「ライン」の上にあれば「買い」)である。))また、この質問では、現時点での移動平均の価格を知るにはどうすればよいのでしょうか?よろしくお願いします ) Temaさん、ドキュメントを読んでください、iMaはグラフィカルなオブジェクトと同様にそこに記述されています。行の価格を取得するための関数ObjectGetDouble(対応するパラメータを持つ)があります。 Ratmirf 2016.01.29 16:35 #10025 一度閉じた注文を再開させないためにはどうしたらよいか、開設時の取引条件を維持したまま再開させる方法を初心者に伝授してください。例:ストキャスティクスが50レベルを上方にクロスしたら、買いを建てる。ストキャスティクスの反転、またはレベル80に達したとき、またはテイクプロフィットでクローズします。しかし、オープンするための取引条件は守られているのですストキャスティクスが50を超えたら買い。double S_1=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,0);double S_2=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,1);if(S_1>50){Opn_B=trueとする。}if(S_1<S_2||S_1>80){Cls_B=trueとする。}MQLチュートリアルで紹介されているシンプルなExpert Advisorのスキームに取引基準を挿入しています。この問題を回避するためには、どのような機能を使用すればよいのかご教示ください。ありがとうございました。 Alexey Viktorov 2016.01.29 18:21 #10026 if(S_1 > 50 && S_2 < 50)これが50レベルを下から上へ越える条件です。 Ratmirf 2016.01.29 19:06 #10027 AlexeyVik:これが50レベルを下から上へ越える条件です。 ありがとうございました。これから試してみます。 fxseminar 2016.01.29 20:11 #10028 アタッチされているインジケーター(またはEA)を、チャートを閉じることなく、チャートから「デタッチ」するにはどうすればよいですか? Yury2 2016.01.29 23:16 #10029 リアルタイムで動作するAccountEquity()インジケータをチャート上に配置することは可能でしょうか?どこで手に入るの? Ratmirf 2016.01.30 13:39 #10030 こんにちは、アドバイスをお願いします。MQL4チュートリアルで紹介されているExpert Advisorの取引条件を変更しているのですが、どうすればいいですか?買いでストップロスを設定しようとすると、プログラムがエラー130:間違ったストップを表示します。その理由を教えてください。// M15の数値extern double StopLoss =0; // 開いた注文のSL値extern double TakeProfit =0; // 開いた注文のTPextern int K = 5;extern int D = 3;extern int slowing = 3;extern int price_field = 0;extern int Level_1 = 80; // ストキャスティックレベルextern int Level_2 = 20;extern inttern Period_MA_2 = 31; // MA期間2extern double Rastvor =28.0; // MA間の距離extern double Lots =0.01; // 固定ロット数。extern double Prots =0.07; // フリーファンドのパーセンテージbool Work=true; // Expert Advisorが動作する。string Symb; // 金融商品の名称//--------------------------------------------------------------- 2 --int start(){イントK_levelです。Total, // ウィンドウ内の注文数Tip=-1, // 注文種別選択 (B=0,S=1)チケット; // 注文番号double S_1,S_2,MA_1_t, // MA_1_t の値。MA_1現在値MA_2_t, // 値。MA_2 現在の MA_2_t 値 // 順番に選択されたロット数ロット, //現在選択されている順番でのロット数Lts, //オープンオーダーのロット数Min_Lot, // 最小ロット数ステップ、 // ロットサイズ変更のステップフリー、 // 現在のフリー資金One_Lot, // 1ロットの値価格, // 選択された注文の価格SL, // 選択された注文のSL価格TP; // 選択された注文のTPブールAns =false, // クロージングの後のサーバーの回答Cls_B=false, // 買いを終了するための基準Cls_S=false, // 売りの終了基準Opn_B=false, // 開くの基準 BuyOpn__S=false; // 売りの開始の判断基準//--------------------------------------------------------------- 3 --//前処理if(Bars < Period_MA_2) // 十分なバーがない。{Alert("Not enough bars in the window. Expert Advisor is not working.");return; // start() を終了する。}if(Work==false) // 重大なエラーが発生しました。{Alert("Critical error. Expert Advisor is not working.");return; // start() を終了する。}//--------------------------------------------------------------- 4 --// オーダーカウントSymb=Symbol(); // 金融商品の名前。Total=0; // 注文数for(int i=1; i<=OrdersTotal(); i++)// オーダーループ{if(OrderSelect(i-1,SELECT_BY_POS)==true) // 以下の場合。{ // オーダー解析。if (OrderSymbol()!=Symb)continue; // 当社の金融商品ではありません。if (OrderType()>1) // 保留注文があります。{Alert("未決済注文を検出しました。 Expert Advisorは動作していません。")return; // Exit()}Total++; // 成行注文カウンターif (Total>1) // 注文が1件以上ない場合{Alert("複数の成行注文があり、Expert Advisorが動作していません。")return; // Exit()}Ticket=OrderTicket(); // 注文番号が選択されました。Tip =OrderType(); // 選択されたオーダーのタイプ。Price =OrderOpenPrice(); // 選択された注文の価格です。SL =OrderStopLoss(); // 選択された注文のSL。TP =OrderTakeProfit(); // 選択された注文のTP。Lot =OrderLots(); // ロット数}}//--------------------------------------------------------------- 5 --// 取引条件S_1=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,0);S_2=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,1);if(S_1 > 50 && S_2 < 50){Opn_B=trueとする。}if(S_1<S_2||(S_1 < 80 && S_2 > 80)){Cls_B=trueとする。}if(S_1 < 50 && S_2 > 50){Opn_S=trueとする。}if(S_1>S_2||(S_1 > 20 && S_2 < 20)){Cls_S=trueとする。}//--------------------------------------------------------------- 6 --// 注文を閉じるwhile(true) // オーダーループを閉じる。{if (Tip==0 && Cls_B==true) //買い注文を開く。{ //終了基準ありアラート("買物を終了しようとしています",チケット,";)RefreshRates(); // データをリフレッシュするAns=OrderClose(Ticket,Lot,Bid,2);//買いを閉じるif (Ans==true) // うまくいきました :){アラート(「買い注文終了」,チケット;)break; // クローズループから抜ける}if (Fun_Error(GetLastError())==1) // エラー処理continue; // 再試行return; // start() を終了する。}if (Tip==1 && Cls_S==true) // 売り注文を開始しました。{ // 近い基準があるアラート("売りの終了を試みています",チケット,";)RefreshRates(); // データをリフレッシュするAns=OrderClose(Ticket,Lot,Ask,2);//売りのクローズif (Ans==true) // うまくいきました :){アラート(「売り注文が終了しました」,チケット;)break; // クローズループから抜ける}if (Fun_Error(GetLastError())==1) // エラー処理continue; // 再試行return; // start() を終了する。}break; // 終了する間}//--------------------------------------------------------------- 7 --// 注文の値RefreshRates(); // データをリフレッシュするMin_Lot=MarketInfo(Symb,MODE_MINLOT); // 最小ロット数Free =AccountFreeMargin(); // 資金開放One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1ロットの値です。Step =MarketInfo(Symb,MODE_LOTSTEP); // ステップ変更サイズif (Lots > 0) // ロットが指定されている場合Lts =Lots; // 私たちは彼らと一緒に仕事をするelse // フリーファンドの割合Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// 開くにはif(Lts < Min_Lot) Lts=Min_Lot; // Min_Lotより小さくないこと; // Min_Lotより小さくないことif(Lts*One_Lot > Free) // Freeより高いロットがある。{Alert(" Not enough money ", Lts," lots);return; // start() を終了する。}//--------------------------------------------------------------- 8 --//受注開始while(true) //順番にループを閉じる。{if (Total==0 && Opn_B==true) // 未決済注文はありません。{ //オープンバイヤーの基準です。RefreshRates(); // データを更新するAlert("Trying to open Buy. Waiting for reply...");チケット=OrderSend(Symb,OP_BUY,Lts,Ask,2,StopLoss,TakeProfit);//買いを開始if (Ticket > 0) // うまくいった :){アラート(「買い注文が開きました」,チケット;)return; //オーダーを終了する}if (Fun_Error(GetLastError())==1) // エラー処理continue; // 再試行return; // start() を終了する。}if (Total==0 && Opn_S==true) // 未決済注文はありません。{ //売り基準を開く。RefreshRates(); // データを更新するAlert("Attempting to open Sell. Waiting for reply...");チケット=OrderSend(Symb,OP_SELL,Lts,Bid,2,StopLoss,TakeProfit);/Open Sel.if (Ticket > 0) // うまくいきました :){アラート("売り注文が開きました",チケット;)return; //オーダーを終了する}if (Fun_Error(GetLastError())==1) // エラー処理continue; // 再試行return; // start() を終了する。}break; // 終了する間}//--------------------------------------------------------------- 9 --return; //start()から抜ける}//-------------------------------------------------------------- 10 --int Fun_Error(int Error) // エラー処理 fie{switch(エラー){ // 乗り越えられないエラー。case 4: Alert("The trade server is busy. Try again...");Sleep(3000); // 簡単な解決方法です。return(1); // 関数を終了します。case 135:Alert("Price changed. Try again...");RefreshRates(); // データをリフレッシュします。return(1); // 関数を終了します。case 136:Alert("No price. Waiting for new tick...");while(RefreshRates()==false) // 新しいティックを表示する。Sleep(1); // ループ内の遅延時間return(1); // 関数を終了します。case 137:Alert("Broker is busy. Try again...");Sleep(3000); // 簡単な解決方法です。return(1); // 関数を終了します。case 146:Alert("The trading subsystem is busy. Try again...");Sleep(500); // 単純な判定return(1); // 関数を終了します。// クリティカルエラーcase 2: Alert("一般的なエラー;")return(0); // 関数を終了します.case 5: Alert("Older version of the terminal.");Work=false; // もう動作しないreturn(0); // 関数を終了します。case 64: Alert("アカウントがブロックされました。");Work=false; // もう動作しないreturn(0); // 関数を終了します。case 133:Alert("取引禁止。");return(0); // 関数を終了します。case 134:Alert("Not enough money to execute the transaction")と表示されます。return(0); // 関数を終了します。default: Alert("An error has occurred ",Error); // その他のオプションreturn(0); // 関数を終了します。}}//-------------------------------------------------------------- 11 --int New_Stop(int Parametr) // ストップ・ピックをチェックします。{int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// 最小距離if (Parametr < Min_Dist) // 許容値より小さい場合。{Parametr=Min_Dist; // 公差を設定する。Alert("停止距離が伸びました。")}return(Parametr); // 返り値。} KimIVの便利な機能 [ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you Any rookie question, so 1...99699799899910001001100210031004100510061007100810091010...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
以下のような実装方法をアドバイスしてください。
チャート上にカスタムラインがあり、その数を "n "本とする。価格がある線に近づいたときに、価格値を取得するにはどうしたらよいですか?
ありがとうございました。
ターゲットが(価格が(100pips)「ライン」の上にあれば「買い」)である。))また、この質問では、現時点での移動平均の 価格を知るにはどうすればよいのでしょうか?
よろしくお願いします )
ターゲットが(価格が(100pips)「ライン」の上にあれば「買い」)である。))また、この質問では、現時点での移動平均の価格を知るにはどうすればよいのでしょうか?
よろしくお願いします )
一度閉じた注文を再開させないためにはどうしたらよいか、開設時の取引条件を維持したまま再開させる方法を初心者に伝授してください。
例:ストキャスティクスが50レベルを上方にクロスしたら、買いを建てる。ストキャスティクスの反転、またはレベル80に達したとき、またはテイクプロフィットでクローズします。しかし、オープンするための取引条件は守られているのですストキャスティクスが50を超えたら買い。
double S_1=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,0);
double S_2=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,1);
if(S_1>50)
{
Opn_B=trueとする。
}
if(S_1<S_2||S_1>80)
{
Cls_B=trueとする。
}
MQLチュートリアルで紹介されているシンプルなExpert Advisorのスキームに取引基準を挿入しています。この問題を回避するためには、どのような機能を使用すればよいのかご教示ください。ありがとうございました。
これが50レベルを下から上へ越える条件です。
これが50レベルを下から上へ越える条件です。
こんにちは、アドバイスをお願いします。MQL4チュートリアルで紹介されているExpert Advisorの取引条件を変更しているのですが、どうすればいいですか?買いでストップロスを設定しようとすると、プログラムがエラー130:間違ったストップを表示します。その理由を教えてください。
// M15の数値
extern double StopLoss =0; // 開いた注文のSL値
extern double TakeProfit =0; // 開いた注文のTP
extern int K = 5;
extern int D = 3;
extern int slowing = 3;
extern int price_field = 0;
extern int Level_1 = 80; // ストキャスティックレベル
extern int Level_2 = 20;
extern inttern Period_MA_2 = 31; // MA期間2
extern double Rastvor =28.0; // MA間の距離
extern double Lots =0.01; // 固定ロット数。
extern double Prots =0.07; // フリーファンドのパーセンテージ
bool Work=true; // Expert Advisorが動作する。
string Symb; // 金融商品の名称
//--------------------------------------------------------------- 2 --
int start()
{
イント
K_levelです。
Total, // ウィンドウ内の注文数
Tip=-1, // 注文種別選択 (B=0,S=1)
チケット; // 注文番号
double S_1,
S_2,
MA_1_t, // MA_1_t の値。MA_1現在値
MA_2_t, // 値。MA_2 現在の MA_2_t 値 // 順番に選択されたロット数
ロット, //現在選択されている順番でのロット数
Lts, //オープンオーダーのロット数
Min_Lot, // 最小ロット数
ステップ、 // ロットサイズ変更のステップ
フリー、 // 現在のフリー資金
One_Lot, // 1ロットの値
価格, // 選択された注文の価格
SL, // 選択された注文のSL価格
TP; // 選択された注文のTP
ブール
Ans =false, // クロージングの後のサーバーの回答
Cls_B=false, // 買いを終了するための基準
Cls_S=false, // 売りの終了基準
Opn_B=false, // 開くの基準 Buy
Opn__S=false; // 売りの開始の判断基準
//--------------------------------------------------------------- 3 --
//前処理
if(Bars < Period_MA_2) // 十分なバーがない。
{
Alert("Not enough bars in the window. Expert Advisor is not working.");
return; // start() を終了する。
}
if(Work==false) // 重大なエラーが発生しました。
{
Alert("Critical error. Expert Advisor is not working.");
return; // start() を終了する。
}
//--------------------------------------------------------------- 4 --
// オーダーカウント
Symb=Symbol(); // 金融商品の名前。
Total=0; // 注文数
for(int i=1; i<=OrdersTotal(); i++)// オーダーループ
{
if(OrderSelect(i-1,SELECT_BY_POS)==true) // 以下の場合。
{ // オーダー解析。
if (OrderSymbol()!=Symb)continue; // 当社の金融商品ではありません。
if (OrderType()>1) // 保留注文があります。
{
Alert("未決済注文を検出しました。 Expert Advisorは動作していません。")
return; // Exit()
}
Total++; // 成行注文カウンター
if (Total>1) // 注文が1件以上ない場合
{
Alert("複数の成行注文があり、Expert Advisorが動作していません。")
return; // Exit()
}
Ticket=OrderTicket(); // 注文番号が選択されました。
Tip =OrderType(); // 選択されたオーダーのタイプ。
Price =OrderOpenPrice(); // 選択された注文の価格です。
SL =OrderStopLoss(); // 選択された注文のSL。
TP =OrderTakeProfit(); // 選択された注文のTP。
Lot =OrderLots(); // ロット数
}
}
//--------------------------------------------------------------- 5 --
// 取引条件
S_1=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,0);
S_2=iStochastic(NULL,0,K,D,slowing,MODE_SMA,price_field,MODE_MAIN,1);
if(S_1 > 50 && S_2 < 50)
{
Opn_B=trueとする。
}
if(S_1<S_2||(S_1 < 80 && S_2 > 80))
{
Cls_B=trueとする。
}
if(S_1 < 50 && S_2 > 50)
{
Opn_S=trueとする。
}
if(S_1>S_2||(S_1 > 20 && S_2 < 20))
{
Cls_S=trueとする。
}
//--------------------------------------------------------------- 6 --
// 注文を閉じる
while(true) // オーダーループを閉じる。
{
if (Tip==0 && Cls_B==true) //買い注文を開く。
{ //終了基準あり
アラート("買物を終了しようとしています",チケット,";)
RefreshRates(); // データをリフレッシュする
Ans=OrderClose(Ticket,Lot,Bid,2);//買いを閉じる
if (Ans==true) // うまくいきました :)
{
アラート(「買い注文終了」,チケット;)
break; // クローズループから抜ける
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue; // 再試行
return; // start() を終了する。
}
if (Tip==1 && Cls_S==true) // 売り注文を開始しました。
{ // 近い基準がある
アラート("売りの終了を試みています",チケット,";)
RefreshRates(); // データをリフレッシュする
Ans=OrderClose(Ticket,Lot,Ask,2);//売りのクローズ
if (Ans==true) // うまくいきました :)
{
アラート(「売り注文が終了しました」,チケット;)
break; // クローズループから抜ける
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue; // 再試行
return; // start() を終了する。
}
break; // 終了する間
}
//--------------------------------------------------------------- 7 --
// 注文の値
RefreshRates(); // データをリフレッシュする
Min_Lot=MarketInfo(Symb,MODE_MINLOT); // 最小ロット数
Free =AccountFreeMargin(); // 資金開放
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1ロットの値です。
Step =MarketInfo(Symb,MODE_LOTSTEP); // ステップ変更サイズ
if (Lots > 0) // ロットが指定されている場合
Lts =Lots; // 私たちは彼らと一緒に仕事をする
else // フリーファンドの割合
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// 開くには
if(Lts < Min_Lot) Lts=Min_Lot; // Min_Lotより小さくないこと; // Min_Lotより小さくないこと
if(Lts*One_Lot > Free) // Freeより高いロットがある。
{
Alert(" Not enough money ", Lts," lots);
return; // start() を終了する。
}
//--------------------------------------------------------------- 8 --
//受注開始
while(true) //順番にループを閉じる。
{
if (Total==0 && Opn_B==true) // 未決済注文はありません。
{ //オープンバイヤーの基準です。
RefreshRates(); // データを更新する
Alert("Trying to open Buy. Waiting for reply...");
チケット=OrderSend(Symb,OP_BUY,Lts,Ask,2,StopLoss,TakeProfit);//買いを開始
if (Ticket > 0) // うまくいった :)
{
アラート(「買い注文が開きました」,チケット;)
return; //オーダーを終了する
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue; // 再試行
return; // start() を終了する。
}
if (Total==0 && Opn_S==true) // 未決済注文はありません。
{ //売り基準を開く。
RefreshRates(); // データを更新する
Alert("Attempting to open Sell. Waiting for reply...");
チケット=OrderSend(Symb,OP_SELL,Lts,Bid,2,StopLoss,TakeProfit);/Open Sel.
if (Ticket > 0) // うまくいきました :)
{
アラート("売り注文が開きました",チケット;)
return; //オーダーを終了する
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue; // 再試行
return; // start() を終了する。
}
break; // 終了する間
}
//--------------------------------------------------------------- 9 --
return; //start()から抜ける
}
//-------------------------------------------------------------- 10 --
int Fun_Error(int Error) // エラー処理 fie
{
switch(エラー)
{ // 乗り越えられないエラー。
case 4: Alert("The trade server is busy. Try again...");
Sleep(3000); // 簡単な解決方法です。
return(1); // 関数を終了します。
case 135:Alert("Price changed. Try again...");
RefreshRates(); // データをリフレッシュします。
return(1); // 関数を終了します。
case 136:Alert("No price. Waiting for new tick...");
while(RefreshRates()==false) // 新しいティックを表示する。
Sleep(1); // ループ内の遅延時間
return(1); // 関数を終了します。
case 137:Alert("Broker is busy. Try again...");
Sleep(3000); // 簡単な解決方法です。
return(1); // 関数を終了します。
case 146:Alert("The trading subsystem is busy. Try again...");
Sleep(500); // 単純な判定
return(1); // 関数を終了します。
// クリティカルエラー
case 2: Alert("一般的なエラー;")
return(0); // 関数を終了します.
case 5: Alert("Older version of the terminal.");
Work=false; // もう動作しない
return(0); // 関数を終了します。
case 64: Alert("アカウントがブロックされました。");
Work=false; // もう動作しない
return(0); // 関数を終了します。
case 133:Alert("取引禁止。");
return(0); // 関数を終了します。
case 134:Alert("Not enough money to execute the transaction")と表示されます。
return(0); // 関数を終了します。
default: Alert("An error has occurred ",Error); // その他のオプション
return(0); // 関数を終了します。
}
}
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr) // ストップ・ピックをチェックします。
{
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// 最小距離
if (Parametr < Min_Dist) // 許容値より小さい場合。
{
Parametr=Min_Dist; // 公差を設定する。
Alert("停止距離が伸びました。")
}
return(Parametr); // 返り値。
}