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

 

その他の質問

現在、私のEAは次のようなものです。

if(FastMA2 SlowMA1)

{

ClosePositions();

OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),"",MAGIC,0,Blue);

return(0)です。

このように変更したいのですが

1. 15分足で買いサインを出す。

2.もし、5分足のMAクロスがすでに買いサインであった場合。

ClosePosition.そして新しいポジションを取得します。

もし、5分足のMAがすでに売り サインに変化していたら

5分足のタイムフレームの買いサインを待つ。

そしてClosePosition.and新しいポジションを取得する

このプログラムをどのように書くか教えてください。

削除済み  
ファイル:
 

こんにちは

私は、デモで使用しているEAとコードを学ぶためにいくつかの助けを探しています。私はポジションを開くために使用された4つのエントリの基準のうち、私に表示するためにシステムにコメントを追加する方法を見つけようとしています。

どのようなヘルプも素晴らしいでしょう

乾杯

Beno

 
Beno:
こんにちは

私はいくつかの助けを探しています。私はデモで使用しているEAを持っており、また、コードを学ぶために使用しています。私はポジションを開くために使用された4つのエントリの基準のうち、私に表示するためにシステムにコメントを追加する方法を見つけようとしています。

どのようなヘルプも素晴らしいでしょう

乾杯

ベノ

条件が満たされ、Ordersend() コマンドを使用 した後、Comment()、Alert()、またはPrint()ステートメントを挿入するだけです。 いずれかを使用します。

このようなものです。

if ( long2 == true)

{

Ordersend()。

{

Print(" long2 signal taken ");

}

お役に立てれば幸いです。

 

ありがとう、ウルフ

私は笑わなければならなかった私はあなたが提案したものを入れて、それは一種の動作しますが、今私はコメントだけで、ポジションが開いていない。

bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Close[shift];

bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];

bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<Close[shift]。

bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Close[shift] && MOMClose[shift]; bool Short2 = RSIndex1=HLM && TrStop>Close[shift] && MOMClose[shift];

bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<Close[shift]。

bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Close[shift]&&MOMClose[shift]。

bool Long4 = zscore>0.0 && ma<Close[shift]。

bool Short4 = zscoreClose[shift];

buysig = Long || Long2 || Long3 || Long4;

sellsig = Short ||Short2 ||Short3 ||Short4;

closebuy=sellsig;

closesell=buysigです。

if (curprof>=AccountBalance()*ProfitExit/100.0) {。

exit=true。

}

if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars){。

remorder=true。

}

}

voidCheckForOpen(){

int res,tr;

//---- 売り条件

co=CalculateCurrentOrders(Symbol())。

if(sellsig && lastsig!=-1) { (売り条件)

co=CalculateCurrentOrders(Symbol())。

if (co==0){。

if ( Short == true)

if ( Short2 == true)

if ( Short3 == true)

res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);

Print(" Short signal taken ");

Print(" Short2 signal taken "); Print(" Short1 signal taken "); Print(" Short2 signal taken ");

Print("ショート3シグナルを取得");

プリント(" Short4 シグナルを取得しました ");

}

lastsig=-1;

last=Time[0];

を返します。

}

//---- 買いの条件

if(buysig && lastsig!=1) { { {(buysig && lastsig!=1)

co=CalculateCurrentOrders(Symbol())。

if (co==0)の場合

if ( ロング == 真)

if ( ロング2 == 真)

if ( Long3 == true)

if ( Long4 == true)

res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);

プリント(" Long signal taken ");

Print(" Long2 signal taken "); Print(" Long2 signal taken ");

プリント(" Long3 signal taken ");

プリント(" Long4 signal taken ");

}

last=Time[0];

lastsig=1;

を返します。

}

}

修正しました ありがとうございます

 

デバッグ用コード

このようなコードをどこでどのように使用するのでしょうか?ゼロ除算の エラーが発生し、その修正方法がわからない。

extern bool DEBUGGING = true (デバッギング = true)

...

if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- This variable is now ", variableName);

... さらにコード

if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- この変数は今 ", variableName "です。)

...さらにコード

if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- この変数は今 ", variableName "です。)

...

 

なぜコードに間違いがあるのでしょうか?

これはSMMAを計算するためのものです。

for(j=0;j<Bars;j++)

{

for(i=0,sum=0;i<ma_period;i++)です。

{

sum=sum+Close[j+i];

// buffer[j]=(sum-sum/ma_period+Close[j+i])/ma_period。

}

buffer[j]=(sum-sum/ma_period+Close[j])/ma_period;

}

これはLWMAを計算するためのものです。

for(j=0;j<Bars;j++)

{

for(i=0,sum=0,sum1=0;i<ma_period;i++)のようになります。

{

sum=sum+Close[j+i];

sum1=sum1+Close[j+i]*(j+i);

// buffer[j]=sum/ma_period。

}

buffer[j]=sum1/sum。

}

で、EMAの計算方法は?

 

インジケーターに関する質問

皆さん、こんにちは。

プログラミングの問題で行き詰っています。1つのインジケーターの結果を使って、別の設定を変更する方法をご存知の方はいらっしゃいますか?例えば、日足が20を超えたら、移動平均を(x)にしたいと思います。私は以下のコードを動作させようとしましたが、無駄になりました。スイッチやif elseコマンドを動作させることができないようです。

double fourhrUP;

double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);

double daystoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)

 
ajk:
皆さん、こんにちは。

プログラミングの問題で行き詰っています。ある指標の結果を使って別の設定を変更する方法をご存知の方はいらっしゃいますか?例えば、日足が20を超えたら、移動平均を(x)にしたいと思います。私は以下のコードを動作させようとしましたが、無駄になりました。スイッチやif elseコマンドを動作させることができないようです。

double fourhrUP;

double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1).ダブルデイストック1 = iStochastic(NULL, PERIOD_D1,5, 3, 0, MODE_MAIN,1);

double daystoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)

MAの変数はどこだ?

たぶん、これが役に立つでしょう

doublema4hr=iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift);

ストキャの計算が同じループの中にある場合、例えば "for(int shift=limit-1; shift>=0; shift--)" とすると、ストキャコードは以下のようになります。

double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1);

CMIIW

 

インジケータに関するちょっとしたヘルプ - コーダーは見てください

MT4ブローカーのプラットフォームで、価格提示にフラクショナル・ピップス(ピペット)を使用するものをテストしています。 例えば、EURJPYの場合、164.38ではなく164.381と表示されます。これは、スプレッドが4ではなく、4.1ピップスのような小数であることを意味します。

どなたか、スプレッドが正しく読めるように、以下のコードを変更する方法を教えてください。 今現在、4.1pipのスプレッドはIndicatorでは41.0と読み取れます。 どんな助けでも感謝します。

ダン

//---- スプレッド

Spread=NormalizeDouble((Ask-Bid)/Point,1).ObjectSetText("Spread")です。

ObjectSetText("Spread Monitor1", "Spread:", 10, "Arial", labelColor);

ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor);