コーディングの方法は? - ページ 313 1...306307308309310311312313314315316317318319320...347 新しいコメント dasio 2012.08.26 10:27 #3121 こんにちは。 現在アクティブなチャートシンボルの買いまたは売り注文のみを コードで変更することは可能でしょうか? WindowsPriceonDroppedという関数を使って注文を出すスクリプトでとても役に立ちそうです。 ありがとうございます。 Mladen Rakic 2012.08.26 16:30 #3122 ... dasioです。 このようなことを試してみてください。 for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderType()==OP_BUY || OrderType()==OP_SELL) { // do the proccessing you wish here } } dasio: こんにちは。現在のアクティブなチャートシンボルの買いまたは売り注文だけを変更するコードは可能ですか? WindowsPriceonDroppedという関数を使って注文を出すスクリプトでとても役に立ちそうです。 ありがとうございます。 cyber1 2012.09.02 14:44 #3123 誰か挑戦してみませんか? 私は、添付のスクリーンショットを参照してください、次のことを行うためにいくつかのコードが必要です。これは、買い取引になります。 私はforループ、if条件の混乱を試したが、どちらも私が探している結果を生成していません。 それは簡単なように見えるが、私はそれを動作させることができませんでした。 ファイル: maexample.jpg 54 kb Mladen Rakic 2012.09.03 08:01 #3124 入力条件は、このように書くことができます。 double pipMultiplier = 1; if (Digits==3 || Digits==5) pipMultiplier = 10; double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1); bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier)); if (openBuy) { // your code here } cyber1: 次のようなコードが必要です。添付のスクリーンショットをご覧ください。これは買い取引になります。forループやif条件をいろいろ試してみましたが、どちらも私が求めている結果を得ることができませんでした。 簡単そうに見えますが、私はそれを動作させることができませんでした。 cyber1 2012.09.03 08:43 #3125 mladen: あなたの入力条件は、次のように書くことができます。 double pipMultiplier = 1; if (Digits==3 || Digits==5) pipMultiplier = 10; double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1); bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier)); if (openBuy) { // your code here } しかし、それよりもはるかに多くのtheres。あなたが投稿したコードは私に移動平均を またぐバーのための信号を与えるだろう。しかし、私はまた、彼らはMA + 5を超えないことを条件として5バーまでのストラドルバーの過去の任意のバーで取引を開始する方法が必要です。ストラドルバーで買いシグナルを出さない理由は、ストラドルバーではTRUEでなくても、ストラドルバーから5本先のバーでTRUEであり、MA+5の制限を超えていなければ、取引を行うことができる別のインジケータがあるためです。複数のトレードをするのではなく、1つのセットアップにつき1つのトレードをします。 以下は、今のところ私が持っているものです。この時点では、私は唯一の下に矢印で対象となるバーをマークしている、買いのみ。これができたら、注文を実行するコードを入れるつもりです。簡単そうに見えますが、何か明らかなものを見逃していない限り、そうではありません。 //+------------------------------------------------------------------+ double Poin; //+------------------------------------------------------------------+ //| Custom initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators if (Point==0.00001) Poin=0.0001; else { if (Point==0.001) Poin=0.01; else Poin=Point; } //---- return(0); } //+------------------------------------------------------------------+ // + //+------------------------------------------------------------------+ int deinit(){ return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ int MAM1StartBar=1; int M1MAEntryPoint1=0; int M1MAEntryPoint2=5; string sObjName; //------Indicators-------------// double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar); double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1); double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits); double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits); double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits); double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits); double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits); double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits); double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits); double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits); double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits); double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits); double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits); double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits); // double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits); // double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits); //Blue arrow indicates straddle bar if(M1High0>= MAM0 && M1Low0<=MAM0){ sObjName="Test_BLine1"+Time[MAM1StartBar]; ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin); ObjectSet(sObjName, OBJPROP_ARROWCODE, 241); ObjectSet(sObjName, OBJPROP_COLOR, Blue); } //Aqua arrow indicates straddle bar+1 if(M1Low1=MAM0){ if(M1High1<=MAM0+M1MAEntryPoint2*Poin){ if(M1Low0 > MAM0){ sObjName="Test_BLine2"+Time[MAM1StartBar]; ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin); ObjectSet(sObjName, OBJPROP_ARROWCODE, 241); ObjectSet(sObjName, OBJPROP_COLOR, Aqua); } } } //---- return(0); } How to code? [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 コーディングのヘルプ cyber1 2012.09.03 21:42 #3126 このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中止する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認 する必要があり、そうすればこの取引設定は終了します。 ここでは、5つのバーのどれもがMA +5リミットを超えていないため、5つのバーすべてが対象となります。 ファイル: maexample_2.jpg 47 kb maexample_3.jpg 46 kb cyber1 2012.09.03 22:31 #3127 このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中断する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認 する必要があり、それがこの取引の設定の終わりとなりました。 ここでは、5つのバーのどれもがMA +5リミットを超えていないため、5つのバーすべてが対象となります。 Mladen Rakic 2012.09.04 06:56 #3128 ... サイバー1 あなたの例では、私が見る限り、あなたの言うようにアボートできるためには、未来も知らなければなりません(「アボート」バーの前ではルールが適用されてGOシグナルが返されるからです) 一方、エントリーするためにすべてのバーをテストしようとすると、最終的には常に「ルール違反」が発生し、ポジションをエントリーすることができません。 cyber1: このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中断する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認する必要があり、それがこのトレード設定の終わりとなったのです。 ここでは、5本のバーのどれもがMA +5の制限を超えなかったため、5本すべてが対象となります。 削除済み 2012.09.12 21:49 #3129 クローズオールオープントレードEA 誰かこのEAを作るのを手伝ってくれませんか? このEAは、目標利益と目標損失に達すると、すべてのオープントレードをクローズします。 全てクローズしたら、オープンしたトレードのモニターを開始します。 私はこれを行うには限界才能を持っています。 このEAは、各ペアのメインEAから分離されています。 lucmat 2012.09.15 08:12 #3130 シグナルとレジスタンス/サポートのディナミックライン。 このインジケータをMT4言語に翻訳するのを手伝ってくれませんか? a:=(hhv(close,tpr)+llv(close,tpr)+close)/3。 b:=(a1*2)-hhv(close,tpr)です。 b:=mov(b,tpr,simple)を移動させる。 c:=(a1*2)-llv(close,tpr)です。 c:=mov(c,tpr,simple)を移動します。 d:=(hhv(close,tpr/2)+llv(close,tpr/2)+close)/3; d:=mov(d,tpr/2,simple)を移動させる。 stream:=(b+c+d)/3。 移動するストリーム:=mov(stream,tpr,simple). hhv= 最大期間値(選択した期間での終値の 最高値) llv=最小期間値(選択された期間の終値の最安値) tpr=期間(1から任意の期間) mov=移動平均。 出力は、"stream "と "moving stream "を持たなければならない!b", "moving b", "c", "moving c", "d", "moving d "を含んでいても、悪いことではありません! ありがとうございます。 この掲示板は素晴らしい......。 Lucmat ファイル: immagine.jpg 258 kb How to code? Signal and resistance/support dinamyc データサイエンスと機械学習(第01回):線形回帰 1...306307308309310311312313314315316317318319320...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
現在アクティブなチャートシンボルの買いまたは売り注文のみを コードで変更することは可能でしょうか?
WindowsPriceonDroppedという関数を使って注文を出すスクリプトでとても役に立ちそうです。
ありがとうございます。
...
dasioです。
このようなことを試してみてください。
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
// do the proccessing you wish here
}
}
こんにちは。
現在のアクティブなチャートシンボルの買いまたは売り注文だけを変更するコードは可能ですか?
WindowsPriceonDroppedという関数を使って注文を出すスクリプトでとても役に立ちそうです。
ありがとうございます。誰か挑戦してみませんか?
私は、添付のスクリーンショットを参照してください、次のことを行うためにいくつかのコードが必要です。これは、買い取引になります。
私はforループ、if条件の混乱を試したが、どちらも私が探している結果を生成していません。
それは簡単なように見えるが、私はそれを動作させることができませんでした。
入力条件は、このように書くことができます。
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
次のようなコードが必要です。添付のスクリーンショットをご覧ください。これは買い取引になります。
forループやif条件をいろいろ試してみましたが、どちらも私が求めている結果を得ることができませんでした。
簡単そうに見えますが、私はそれを動作させることができませんでした。あなたの入力条件は、次のように書くことができます。
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
しかし、それよりもはるかに多くのtheres。あなたが投稿したコードは私に移動平均を またぐバーのための信号を与えるだろう。しかし、私はまた、彼らはMA + 5を超えないことを条件として5バーまでのストラドルバーの過去の任意のバーで取引を開始する方法が必要です。ストラドルバーで買いシグナルを出さない理由は、ストラドルバーではTRUEでなくても、ストラドルバーから5本先のバーでTRUEであり、MA+5の制限を超えていなければ、取引を行うことができる別のインジケータがあるためです。複数のトレードをするのではなく、1つのセットアップにつき1つのトレードをします。
以下は、今のところ私が持っているものです。この時点では、私は唯一の下に矢印で対象となるバーをマークしている、買いのみ。これができたら、注文を実行するコードを入れるつもりです。簡単そうに見えますが、何か明らかなものを見逃していない限り、そうではありません。
//+------------------------------------------------------------------+
double Poin;
//+------------------------------------------------------------------+
//| Custom initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if (Point==0.00001) Poin=0.0001;
else {
if (Point==0.001) Poin=0.01;
else Poin=Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
// +
//+------------------------------------------------------------------+
int deinit(){
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start(){
int MAM1StartBar=1;
int M1MAEntryPoint1=0;
int M1MAEntryPoint2=5;
string sObjName;
//------Indicators-------------//
double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar);
double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1);
double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
// double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits);
// double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits);
//Blue arrow indicates straddle bar
if(M1High0>= MAM0 && M1Low0<=MAM0){
sObjName="Test_BLine1"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Blue);
}
//Aqua arrow indicates straddle bar+1
if(M1Low1=MAM0){
if(M1High1<=MAM0+M1MAEntryPoint2*Poin){
if(M1Low0 > MAM0){
sObjName="Test_BLine2"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Aqua);
}
}
}
//----
return(0);
}
このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中止する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認 する必要があり、そうすればこの取引設定は終了します。
ここでは、5つのバーのどれもがMA +5リミットを超えていないため、5つのバーすべてが対象となります。
このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中断する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認 する必要があり、それがこの取引の設定の終わりとなりました。
ここでは、5つのバーのどれもがMA +5リミットを超えていないため、5つのバーすべてが対象となります。
...
サイバー1
あなたの例では、私が見る限り、あなたの言うようにアボートできるためには、未来も知らなければなりません(「アボート」バーの前ではルールが適用されてGOシグナルが返されるからです)
一方、エントリーするためにすべてのバーをテストしようとすると、最終的には常に「ルール違反」が発生し、ポジションをエントリーすることができません。
このスクリーンショットでは、バー3がMA +5の制限を超えたため、バー4で中断する必要があります。つまり、バー4でバー3がMA +5の制限を超えたかどうかを確認する必要があり、それがこのトレード設定の終わりとなったのです。
ここでは、5本のバーのどれもがMA +5の制限を超えなかったため、5本すべてが対象となります。
クローズオールオープントレードEA
誰かこのEAを作るのを手伝ってくれませんか?
このEAは、目標利益と目標損失に達すると、すべてのオープントレードをクローズします。
全てクローズしたら、オープンしたトレードのモニターを開始します。
私はこれを行うには限界才能を持っています。
このEAは、各ペアのメインEAから分離されています。
シグナルとレジスタンス/サポートのディナミックライン。
このインジケータをMT4言語に翻訳するのを手伝ってくれませんか?
a:=(hhv(close,tpr)+llv(close,tpr)+close)/3。
b:=(a1*2)-hhv(close,tpr)です。
b:=mov(b,tpr,simple)を移動させる。
c:=(a1*2)-llv(close,tpr)です。
c:=mov(c,tpr,simple)を移動します。
d:=(hhv(close,tpr/2)+llv(close,tpr/2)+close)/3;
d:=mov(d,tpr/2,simple)を移動させる。
stream:=(b+c+d)/3。
移動するストリーム:=mov(stream,tpr,simple).
hhv= 最大期間値(選択した期間での終値の 最高値)
llv=最小期間値(選択された期間の終値の最安値)
tpr=期間(1から任意の期間)
mov=移動平均。
出力は、"stream "と "moving stream "を持たなければならない!b", "moving b", "c", "moving c", "d", "moving d "を含んでいても、悪いことではありません!
ありがとうございます。
この掲示板は素晴らしい......。
Lucmat