int start() { int counted_bars = IndicatorCounted(); int lowest=0; int highest=0; //---- int limit; //---- последний посчитанный бар будет пересчитан if((counted_bars > 0)) counted_bars--; limit = Bars - counted_bars; //---- основной цикл
int start() { int counted_bars = IndicatorCounted(); int lowest=0; int highest=0; //---- int limit; //---- последний посчитанный бар будет пересчитан if((counted_bars > 0)) counted_bars--; limit = Bars - counted_bars; //---- основной цикл
int i=0, k=OrdersHistoryTotal(); for (i=k-1; i<=k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) { if (OrderType()==OP_SELL) { if(OrderProfit()< 0) {start=1;} ←クリックすると拡大します。
の場合、関数の中で入力変数を変更すると、関数の出力では変更した値を保持します。
プログラマーの皆さん、こんにちは!ウインドウに表示される未決済注文を、開始時間ではなく、商品名でグループ化して表示するスクリプトはありますか?
10通貨ペアで作業していると、必要な注文が見つからない。誰か持ってないかな?
OrderSymbol()関数については、MetaEditorのヘルプを参照してください。
ありがとうございます!自分で変えられるように
誰もそれを禁じておらず、潜在的なチャンスがあるのなら、それは可能です。
MetaTrader 4を使ったFXの最大ベット額はいくらですか?デモ口座では50ティまで賭けています。51が効かなくなった。この数字を大きく変更することはできますか? プログラムの設定を見ましたが、見つかりませんでした。50以上入力すると、「売り」「買い」ボタンが無効になるのですが。
これらのパラメータを変更できない場合、価格が意図したエントリーポイントから飛び去ることなく、連続して複数の注文を出す方法を教えてください。
新しい注文を開くにはF9キーが必要ですが、その後、あちこちをクリックしなければならず、時間がかかるかもしれません。
MT4で、すべての注文を一度に決済する機能はありますか?あるいは、ホットキーで一気に閉じる?
翌日の高値(テールなし)を探そうとしている(1時間足の場合)...インジケータを作成する。
は何も表示しない...
int start()
{
int counted_bars = IndicatorCounted();
int lowest=0;
int highest=0;
//----
int limit;
//---- последний посчитанный бар будет пересчитан
if((counted_bars > 0))
counted_bars--;
limit = Bars - counted_bars;
//---- основной цикл
if ((Hour()> 0 && Hour()<=1 && Minute()>0 && Minute()<=1 ) ){
for(int i = 1; i < limit; i++)
{
//+++++++++++++++++++++++
for(int k = 1; k < 24; k++)
{if (iClose(NULL,0,k) >highest)
{highest=iClose(NULL,0,k);
}
}
ExtMapBuffer1[i] = highest ;
//+++++++++++++++++
for(int l = 1; l < 24; l++)
{if (lowest ==0) {lowest=iClose(NULL,0,l);}
if (iClose(NULL,0,l)< lowest) {lowest=iClose(NULL,0,l);} }
ExtMapBuffer2[i] = lowest;
//------------------
}
//----
return(0);
}
}
どこにあるか教えてください。 全部英語です。
翌日の高値(テールなし)を探そうとしている(1時間足の場合)...インジケータを作成する。
は何も表示しない...
int start()
{
int counted_bars = IndicatorCounted();
int lowest=0;
int highest=0;
//----
int limit;
//---- последний посчитанный бар будет пересчитан
if((counted_bars > 0))
counted_bars--;
limit = Bars - counted_bars;
//---- основной цикл
if ((Hour()> 0 && Hour()<=1 && Minute()>0 && Minute()<=1 ) ){
for(int i = 1; i < limit; i++)
{
//+++++++++++++++++++++++
for(int k = 1; k < 24; k++)
{if (iClose(NULL,0,k) >highest)
{highest=iClose(NULL,0,k);
}
}
ExtMapBuffer1[i] = highest ;
//+++++++++++++++++
for(int l = 1; l < 24; l++)
{if (lowest ==0) {lowest=iClose(NULL,0,l);}
if (iClose(NULL,0,l)< lowest) {lowest=iClose(NULL,0,l);} }
ExtMapBuffer2[i] = lowest;
//------------------
}
//----
return(0);
}
}
コンパイラの論理が理解できない。機能があるんです。外部変数を宣言しています。
int startです。
さらに関数本体
double B()
{
int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType()==OP_SELL) {
if(OrderProfit()< 0) {start=1;} ←クリックすると拡大します。
}
}
}
}
スタート変数の値は記憶して おき、必要なときにゼロに等しくする必要があります。しかしここで、OrderProfit()<0なら start=1、 OrderProfit()> 0なら 自動的に start=0となることが判明しました。
コンパイラのロジックを正しく理解できているか?