[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 472

 
StatBars >>:

Вы не моглы бы весь скрипт выложить? Я имею ввиду вместе с объявлениями переменных массивов и т.д.

これがそのスクリプトです。動作確認したところ、サイドバーでもダブルでも問題なく読み取れました。

ファイル:
 
全体として、私はまともな混乱、何と言えばいいのでしょうか!?
スペシャリストはすぐに「型変換ではなく、配列を見てください」と言ったのですが......。

StatBars さん、Vininさん、回答してくださった皆さん、どうもありがとうございました。

問題は、私の配列が動的だったことです。 そして、そこにはある種の型変換の特異性があります。
決定的な長さの配列に調整し、 StrToDoubleによる型変換は時計のようにうまくいきました。

本当にありがとう。
ファイルでの作業というのは便利な
ものです。今、考えているところです。
 
Bicus >>:
Джентльмены, вопрос такой:

В тестере вот такая штука:

в журнале выдает "0.0000".

А в терминале в реал-тайме выдает правильные значения.

Как с этим бороться?

А?

 
Bicus писал(а)>>

А?


>>コードを出して、詳細を教えてください。
 
Techno >>:

выкладывай код, и все подробней

double nMAValue;

... парам-парам ...

nMAValue = iMA (Symbol (), PERIOD_H1, 100, 0, MODE_SMA, PRICE_MEDIAN, 0); 
Print ("MA value: ", DoubleToStr (nMAValue, 4));

... парам-парам ...
 
Bicus писал(а)>>

テスターの値も正しいですし、正しく動作します。
ファイル:
001.mq4  1 kb
 

ビニン、ビカス
.csvの更新ありがとうございます。
私はちょっと......混同している)

 
親愛なる皆様、OrderSend機能で 問題が発生しました、つまり、私の注文が開きません。
例えば、このEAをチャートに貼り付けると、
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.となります。1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Buy order opened");
if(OrdersTotal()==0) Alert("Buy order failed because.error #",GetLastError());
Alert("Point = ",Point);
return;
}
端末にはエラー#130(間違った停止位置)が表示され、Point 値は 0 になります。
ポイント還元があるからだと思う(誰にもわからないけど)。
一般的に誰が「犬がどこに埋まっているか」を知っているヘルプ。
ところで、Pointの値=0にすべきなのか、そうでないのか。
ファイル:
 
159753 писал(а)>>
親愛なる皆様、OrderSend機能で問題が発生しました、つまり私の注文が開きません。
例えば、このEAをチャートに貼り付けると-。
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.1;
ダブルSL,TP。
文字列 Symb;
int start()
{
Symb=Symbol()です。
SL =Bid - (StopLoss*Point)です。
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP)を実行。
if(OrdersTotal()>0) Alert("Buy order opened");
if(OrdersTotal()==0) Alert("The Buy order failed to open due to error #",GetLastError());
Alert("ポイント = ",ポイント);
を返します。
}
と表示され、Pointの値は=0となります。
ポイント還元があるからだと思う(誰にもわからないけど)。
一般的に、誰が「犬がどこに埋まっているか」を知っているヘルプ。
ところで、Pointの値=0にすべきなのか、そうでないのか。


すべて正常に動作しています。少なくとも私にとっては
ファイル:
 
159753 >>:
Уважаемые господа, я столкнулся с проблемой, связанной с функцией OrderSend, а именно у меня не открывается ордер.
К примеру, если присоединить этот советник к графику -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Ордер Buy открыт");
if(OrdersTotal()==0) Alert("Ордер Buy открыть не удалось т.к. возникла ошибка №",GetLastError());
Alert("Point = ",Point);
return;
}
то терминал выдаст ошибку № 130 (неправильные стопы), а значение Point будет = 0.
Я думаю, что всё из-за возвращаемого значения Point (хотя кто его знает).
В общем кто знает "где собака зарыта " помогите.
Кстати, значение Point должно = 0 или нет?

Pointが0であるはずがない、おそらく5桁目なので、print(Alert)すると0になる(print(Alert)はDoubleToStr文字列に変換しないと4tsnackまで出力される...)。
TakeProfitとStopLossを10倍にしてみてください。