コーディングの方法は? - ページ 313

 

こんにちは。

現在アクティブなチャートシンボルの買いまたは売り注文のみを コードで変更することは可能でしょうか?

WindowsPriceonDroppedという関数を使って注文を出すスクリプトでとても役に立ちそうです。

ありがとうございます。

 

...

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という関数を使って注文を出すスクリプトでとても役に立ちそうです。

ありがとうございます。
 

誰か挑戦してみませんか?

私は、添付のスクリーンショットを参照してください、次のことを行うためにいくつかのコードが必要です。これは、買い取引になります。

私はforループ、if条件の混乱を試したが、どちらも私が探している結果を生成していません。

それは簡単なように見えるが、私はそれを動作させることができませんでした。

ファイル:
maexample.jpg  54 kb
 

入力条件は、このように書くことができます。

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条件をいろいろ試してみましたが、どちらも私が求めている結果を得ることができませんでした。

簡単そうに見えますが、私はそれを動作させることができませんでした。
 
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);

}

 

このスクリーンショットでは、バー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シグナルが返されるからです)

一方、エントリーするためにすべてのバーをテストしようとすると、最終的には常に「ルール違反」が発生し、ポジションをエントリーすることができません。

cyber1:
このスクリーンショットでは、バー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

ファイル:
immagine.jpg  258 kb