[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 232

 
Vit1986:

デモ口座を作り、相場(SP500、RTSI、SBERなど)をダウンロードした。些細なExpert Advisorを作成。テストすることにしました。しかし、SP500では完璧に動作しますが、SBERやRTSIでは動作しません(1つの注文を開いてから動作を終了します)し、エラーメッセージも表示されません。


1) EAというより、スクリプトのように見える。

2.20ロット移動した後にデモの金額を確認する。

3.OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*ポイント,Bid+MarketInfo(Symbol(),MODE_STOPLEVEL)*ポイント)で試した結果。

4.エラーハンドラ、少なくとも基本的なAlert (GetLastError())を追加する。

5.マニュアルを ご参照ください。

 

また、安全策を講じて、データ型を 明示的に指定することも可能です。

int cmd = OP_SELL;//торговая операция
double volume = 0.1;//лот
int slippage = 2;//отклонение ордера в пипсах
double stoploss = 0;//лось
double takeprofit = 0;//профит

int start(){
   OrderSend(Symbol(),cmd,volume,Bid,slippage,stoploss,takeprofit); 
  return(0);
}
 
GaNDarM:

INIT()で変数にゼロが代入されているのはなぜですか?start()関数の外で、買値と売値を変数に代入する場合のエラーや方法を教えてください。RefreshRates();を前面に出してみましたが、変化なし :(

以下は、インジケータinit()内のコードです。

init()
{
    Print ("Ask = ", Ask, " | Bid = ", Bid);
}

で、そのログがこちらです。

2013.03.19 17:49:27     i-PSI@Dash Board EURUSD,M15: Ask = 1.2932 | Bid = 1.293

何を "泣く "のですか?

 
gyfto:

ガーンダーム

分岐

しゃい
 
TarasBY:

以下は、インジケーターのinit()内のコードです。

で、そのログがこちらです。

何を「泣いて」いるんだ?


泣いている」んですよ。

//---Ф-ЦИЯ init()----------------------------------------------------
int init()
  {
   RefreshRates();// обновляем данные по ценам
   UpL  =  Ask;     // Пик вверх изначально равен цене покупки
   DownL  =  Bid;     // Пик вниз изначально равен цене продажи
   Print ("СРАБОТАЛА Ф_ЦИЯ ИНИТ: DownL = ", DownL, " UpL = ", UpL);
   
   SetIndexStyle(0,DRAW_SECTION);     // стиль линии: отрезки между непустыми значениями
   SetIndexBuffer(0,ExtMapBuffer1);     // привязываем массив к номеру буфера
   SetIndexEmptyValue(0,0.0);     // указываем при каком значении не надо ничего рисовать
   //---
   
   return(0);
  }

で、そのログがこちらです。

18:25:09 IndikatorZZ GBPJPY,Daily: INIT F_CY: DownL = 0 UpL = 0

 
教えてもらえますか?
日中取引がある場合、翌日に持ち越されず、その日のうちに強制的に決済されるということでしょうか。
 

何度オートポイントを使っても、1回目からうまくいかない。

以下は、Init() です。

int init()
{
   if (Digits == 2 || Digits == 4)
     pt = Point;
   if (Digits == 1 || Digits == 3 || Digits == 5)
     pt = Point * 10;
 
  return (0);
}

プログラムの任意の場所(この場合は実験のスタート地点でも)に置いています。

Print("ptStart = ", pt);
Print("PointStart = ", Point);

この関数はログに戻ります。

2013.03.19 19:55:35     2013.01.11 00:00  TradingByLine EURUSD.GI,M5: Point = 0
2013.03.19 19:55:35     2013.01.11 00:00  TradingByLine EURUSD.GI,M5: pt = 0

論理はどこにあるのか?

 

こんにちは。値" を教えていただけませんか?>= " の代わりに " = " とする。私は" < "を削除します。または " >"で、" = "だけを残すと、コンパイル時にエラーになります。

例えば、私のEAは(価格>= MA)であり、私は(価格= MA)を望んでいます。オンリーイコール

 
artemka_1981:

こんにちは。値" を教えていただけませんか?>= " の代わりに " = " とする。私は" < "を削除します。または " >"で、" = "だけを残すと、コンパイル時にエラーになります。

例えば、私のEAは(価格>= MA)であり、私は(価格= MA)を望んでいます。オンリーイコール

==
 
TarasBY:
==

どうもありがとうございました