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

 
delvinja:
こんにちは、私は過去3日間、このエキスパートアドバイザーがMt4でロングトレードを実行するようにしようとしていますが、うまくいきません。 コードが添付されています。
double ... = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);[/PHP]

I am not sure about the -3 shift parameter : it shift the curve to the left, so the current bar is undefinited. Try to replace all -3 by 0 to see if the buy orders are triggered.

I would replace

double Var1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Var2 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Var3 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double Var4 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);

double Buy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double Sell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);

double CloseBuy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double CloseSell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

by

[PHP]double Buy1_1 = iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, Current);

double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

double Sell1_1 = Buy1_1;

double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current);

double CloseBuy1_1 = Buy1_1;

double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

double CloseSell1_1 = Buy1_1;

double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

Rem :

- Var1,2,3,4は使用されていません。

- CloseBuy1_2 と CloseSell1_2 はどちらも同じです:どちらかが間違っているのでしょう (MODE_LOWER)

 

コードに関するヘルプが必要

Michel、あなたの手助けに感謝します。これでやっと休めるよ。

ところで、このエキスパートアドバイザーでは、-3は絶対に使えないということですか? またよろしくお願いします。

 
delvinja:
ところで、このExpert Advisorでは-3は使えないということでしょうか?

実を言うと、私はこのシフトの使い方をよく理解していませんでした。現在のバーの3本前の指標の値を知りたい場合、シフトとして3を使うだけで、最後の1本を使います。最初の1本は曲線の描画をシフトするだけで、負の値を使うと、過去が未来を知っているようなものです...

とにかく、どなたかその使い方を教えていただけると嬉しいです

でも、質問の答えとしては、その-3はどこから来ているのか、自分がやりたい戦略を正確に知ることです。

 

こんにちは

このエキスパートで、すべてのSLをTPと同じラストオーダーのSLに変更したいのですが、できませんでした。

私を助けてください

ファイル:
javadea.mq4  9 kb
 

私は何をしましたか?

MT4でコーディングするのを手伝ってほしい

以下のようなコードがあります。

StopLoss=EMAtrend-iClose(NULL,0,1)です。

テイクプロフィット=ストップロス

If(EMAshort>EMAlong && EMAshort_prev<EMAlong_prev)

{

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask+StopLoss*Point,Bid+TakeProfit*Point, "Buy atclose price", 10000,0,Green).を送信します。

}

If(EMAshortEMAlong_prev)

{

注文送信(Symbol(),OP_SELL,Lots,Bid,0,StopLoss,Bid+TakeProfit*Point, "終値で売り",11000,0,Red);

}

という考え方でした。

1.条件を満たしたときに、終値で注文を出す。

2.EMAtrendを損切り水準にしたい。

3.3. EMAtrendから終値までの距離が、建値からの利益確定距離となる。

上記のコードを試してみましたが、何も起きず、エラー130が発生しています。

助けてください。

 

コードに関するヘルプ

皆さん、こんにちは。

EAをコンパイルしようとしているのですが、以下のエラーが表示されます。

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

If I block this out it comes up with errors for the following bit of code :

[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }

if(TotalTradesThisSymbol(TradeSymbol)>0) {

for(cnt=0;cnt<total;cnt++) {

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()== Symbol) {

if(OrderMagicNumber()==11) { BS=OrderTicket(); }

if(OrderMagicNumber()==22) { SS=OrderTicket(); }

if(OrderMagicNumber()==33) { BL=OrderTicket(); }

if(OrderMagicNumber()==44) { SL=OrderTicket(); }

}//end if(OrderSymbol

}//end for

}//end if */

これを修正する簡単な方法があれば知りたいのです。

私はコーディングが苦手で、コピーアンドペーストしかできません。

ありがとうございました。

バスザ

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

eaをコンパイルさせようとしているのですが、以下のようなエラーが出てしまいます。

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

If I block this out it comes up with errors for the following bit of code :

[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }

if(TotalTradesThisSymbol(TradeSymbol)>0) {

for(cnt=0;cnt<total;cnt++) {

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()== Symbol) {

if(OrderMagicNumber()==11) { BS=OrderTicket(); }

if(OrderMagicNumber()==22) { SS=OrderTicket(); }

if(OrderMagicNumber()==33) { BL=OrderTicket(); }

if(OrderMagicNumber()==44) { SL=OrderTicket(); }

}//end if(OrderSymbol

}//end for

}//end if */

私が知りたいのは、これを修正する簡単な方法があるかということです。

私はコーディングが苦手で、コピー&ペーストしかできません。

よろしくお願いします。

バスザ

TradeSymbolはグローバルスクープで文字列として定義できますが、そこでは関数 Symbol()を評価することができません。そこで、TradeSymbolをすべてSymbol()に置き換えるか、init()関数やstart()関数でその値を代入してください。

void Init(){TradeSymbol=Symbol();}
 

プログラミングのヘルプ

こんにちは、私はEAをプログラムしようとしていた、と私はあなたのコース(非常に興味深い!)に従った。

私はJavaといくつかのC + +でプログラムを作成する方法をよく知っている。

私は脳のトレンド指標とEAをプログラムしようとしていた背後にあるアイデアは次のとおりです。

brainTrend2stopとbraintd1stopのDOTがあるときは買い(その逆もあり)です。

しかし、私はこのようなicustom関数を 呼び出す場合

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1).とすると、BuyValueCurrentの値だけが表示されます。

現在のバーのインジケータの値のみを取得します。

これをブール値にする方法はありますか?

buy=true

BuyCondition = (IndicatorName1=true && IndicatorName2=true) のように書きたいのですが。

誰か助けてくださいお願いしますお願いしますお願いします。

 

エントリーオーダーが実行されたかどうかを制御する...

私はポジションを開いて管理するEAを持っていますが、時々インディケーターに同じシグナルを複数与え、このシグナルが新しいポジションを出すたびにEAが開きます - しかし、私は第二または第三などの位置を望んでいない、私は最初のものだけになります - それは可能ですか、EAは、マジックナンバーとペアに基づいてオープン位置をチェックして、このような複数のエントリを回避するために?

 
payback:
こんにちは、私はEAをプログラムしようとしていた、私はあなたのコース(非常に興味深い!)に従った。

私はjavaといくつかのc + +でプログラムを作成する方法をよく知っています。

私は脳のトレンド指標とEAをプログラムしようとしていた背後にあるアイデアは次のとおりです。

brainTrend2stopとbraintd1stopのDOTが存在するとき買う(またはその逆)。

しかし、私はこのようなicustom関数を呼び出す場合

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1).とすると、BuyValueCurrentの値だけが表示されます。

現在のバーのインジケータの値のみを取得します。

これをブール値にする方法はありますか?

buy=true

BuyCondition = (IndicatorName1=true && IndicatorName2=true) のように書きたいのですが。

誰か助けてください......お願いします
BuyCondition = BuyValueCurrent1 != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE;