[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 279

 
veti-k:
こんにちは、注文が何pipsで利益が出ているか調べる方法を教えてください。 。
買いポジションを持つ 場合、現在のBid価格からオープニング価格を引く必要があります。売りポジションの場合、始値から現在のAsk価格を引く必要があります。
 
paladin80:
買いポジションが開設された場合、現在のビッド価格から開始価格を差し引きます。売りポジションの場合、始値から現在のAsk価格を差し引きます。

スカウトは、BidやAskの代わりにOrderClosePrice()を使用できることを発見しました。
 
ありがとうございました))
 
フォーラムユーザーの皆様、iCustomの変数をArrayMaximumに 入れる方法を教えていただけませんか?
 
Alexandr24:
フォーラムユーザーの皆様、iCustomの変数をArrayMaximumに入れる方法を教えていただけませんか?
これには、ArrayMaximumが何であるかを読む必要があります。

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

最大値を持つ要素を検索します。この関数は,配列中の最大要素の位置を返します.

検索はプロセスであり、変数ではありません。つまり、配列の要素に インジケータ値を代入し、ArrayMaximumで配列の最大要素を検索することができる。
 
granit77:
これについては、ArrayMaximumが何であるかを読む必要があります。 。

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

最大値を持つ要素を検索する。この関数は,配列中の最大要素の位置を返します.

検索はプロセスであり、変数ではありません。つまり、配列の要素にインジケータ値を割り当て、ArrayMaximumで配列の最大要素を検索することができます。
昨日のインジケータの最大 値の見つけ方 昨日の日のインジケータの最初の値と最大値は見つけましたが、昨日の日の最大値が見つけられません、ArrayMaximumはチャート全体を検索し始めます、それとも他の関数で行われているのでしょうか?
 

皆さんこんにちは。私はコンピュータの前でキーボードに頭をぶつけています。初心者を助けてください。

以下は私のフクロウのコードです。

extern double TakeProfit = 500;

extern double Lots = 0.1;

extern double Stoploss = 30;

extern double TrailingStop = 30;

extern string Indicator_1 = "SAR (SAR_STEP)";

extern double SAR_Step = 0.02;

extern double SAR_MaxStep =0.2;

extern double GeneralShift = 0; // 0 - 非クローズドバー、1 - クローズドバー。

// これらは、以下のような変数です。

// の間に表示されます。

// Expert Advisorとチャートの接続


//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

ダブルエー

int b;

int total, ticket, cnt;


//プログラムで使用する変数だけ


if(Bars<100)

{

Print("bars less than 100");

return(0)です。

}

// この条件は、チャートの履歴が100以上のローソク足を含んでいるかどうかをチェックし、含んでいない場合はエラーを返します。

// エラーを発生させます。という問題に注目してもらうことが必要です。

// 情報不足


if(テイクプロフィット<5)

{

Print("TakeProfit less than 5");

return(0)です。

}

// この条件は、TakeProfitレベル(外部変数の1つ。

// 利益確定レベルを制御します。これは、テイクプロフィットレベルを設定したかどうかを確認するために必要です。

// 利益確定レベルを証券会社で許可されていないレベルに設定していないか確認してください。

// お客様の証券会社では使用できません。これは、Expert Advisorが失敗したときに、エラーが何であるかを正確に知ることができるようにするためです。

// エラーがある場所設定することを強くお勧めします。


total=OrdersTotal()。

if(total<1)

// このチェックは、一度に複数の同じポジションを開くことを避けるために必要です。もしチェックされていなければ、例えばストキャスティクスが買われすぎのゾーンにあるときにEAがトリガーされた場合、マージンを使い切るまですべてのティックで取引されることになります。

// そのため、オープンポジションの数を制限するために、この

// リミッター設定されている場合、Advisor は一定数以上 // 開かないようにします。

// 位置の数 <x

{

// 未決済の注文を確認しない

if(AccountFreeMargin()<(1000*Lots))

{

Print("We have no money.フリーマージン = ", AccountFreeMargin();

return(0)です。

}

// もう一つの補助的なコードです。アカウントに十分な資金がない場合、それは

// エラーを表示します。Expert Advisor が動作する場合、この部品は全く役に立ちません。

// リアルタイムですが、履歴でのテストに非常に便利です。


if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); // 買いを開始する。

// いよいよ一番気になるところです。これらのxの代わりに、以下を挿入する必要があります。

// 買いのトリガーとなる条件。


{

ticket=OrderSend(Symbol(,OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point, "comment",16384,0,Green))。


// これがBuy条件です。原則的には、ここで変えることはないのですが、 //自分の視野を広げるために、範囲を広げています。

// ここに書いてあることを解読してみる。買わなければならないとここに書いてあります。

// (OP_BUY)現在のシンボル(通貨ペア、このExpert Advisorが接続されているチャート)。

// 取引サイズ Lots(最初に設定される変数)。市場価格、あり

// スリッページ 3 で、StopLoss と TakeProfit を設定した場合。

には、取引開始時に「コメント」、判定番号0が表示され、//には

// 購入時、チャート上に緑のスライダーが表示され、決定コードが表示されます。

// 16384


if(チケット>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0)です。

}


// このブロックは、すべてがうまくいったかどうかを記録するためにのみ必要です。

// あるいは、そうでない場合は、何かを失敗させる原因となったエラーを記録する。


// 今度は売り賭けで同じことをします。YYYYYYの代わりに - 条件

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0])とする。

{

ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red));

if(チケット>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0)です。

}

return(0)です。

}


// 今度は出口です。こちらも何も変わらず、RRRRR〜状態です。

// 買いで取引終了、ZZZZZZZZZZZZ - 売りで取引終了


for(cnt=0;cnt

//しばらくは、すべてのオープンポジションに目を通します。

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // 開いたポジションをチェックする)

OrderSymbol()==Symbol()) // シンボルをチェックする

{

if(OrderType()==OP_BUY) // ロングポジションがオープンされる

{

// 閉鎖すべきなのか?

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) //終値買い.

{

オーダークローズ(OrderTicket(),OrderLots(),Bid,3,Violet); // クローズポジション

return(0); // 終了

}

// トレーリングストップをチェックする

if(TrailingStop>0)

{

if(入札-注文開始価格()>ポイント*トレイリングストップ)

{

if(オーダーストップ・ロス()<ビッドポイント*トレイリングストップ)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green)。

return(0)です。

}

}

}

}

else // ショートポジションと同じ

{

// 閉鎖すべきなのか?

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0])//close SELL

{

オーダークローズ(オーダーチケット(),オーダーロット(),アスク,3,バイオレット); // クローズポジション

return(0); // 終了

}

// トレーリングストップをチェックする

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)))

{

オーダーモディファイ(オーダーチケット()、オーダーオープンプライス()、アスク+ポイント*トレイリングストップ、オーダーテイクプロフィット()、0、レッド)。

return(0)です。

}

}

}

}

}

}

}

return(0)です。

//--------

}

//-----------終了。

 

初心者のオートトレーダーは虫の居所が悪い!!!!Please Please help me!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

'}'- unbalanced parentheses C:\Program Files (x86)\Forex4you MetaTrader 4experts ◇Saurentios V101.mq4 (167, 1)

 
こんな風にコードをフォーマット するときに頭をぶつけなければよかったのに。修正します :)
 

何度もエラーを繰り返していますね。

if条件をつけて、その括弧の中に何かを書いて、閉じ括弧の後ろにセミコロンをつける。

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); 

それはおかしい。これは正しい。

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]){

}