どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 750

 
noob1:
こんにちは。私は、買い注文と売り注文を出した後、最初のバーの安値と高値からそれぞれStopLossを計算しようとしているのですが、何かアドバイスがありますか?しかし、結果は出ず、130のエラーが出ただけでした。よろしくお願いします。
同じチケットなのでしょうか?また、ストップロスまでの距離が小さすぎる可能性があります。
 
simpleton:

OrderOpenPrice()がSLに近すぎるかどうか、ストップが「価格の右側」にあるかどうかをチェックします。こちらで お読みいただけます。

StopLossとTakeProfitの価格は、マーケットに近すぎることはできません。最小ストップ距離(pips)は、MarketInfo() 関数でMODE_STOPLEVELパラメータを使用して取得することができます。誤って停止した場合や正規化されていない場合はエラー 130 (ERR_INVALID_STOPS) が発生する。

この場合、つまり保留中の注文の場合、「市場」はその「保留中の始値」です。

やり直したところ、うまくいったようです。ありがとうございます。
 
MTからパソコンの現在のipアドレスを調べる方法を教えてください。
 
Heroix:
MTからパソコンの現在のipアドレスを取得する方法を教えてください。
WebRequestで、http://ipecho.net/plain、受信したファイルから読み出す。またはWinAPI。
 

ストラテジーテスターのコマンドMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) これは、例えば、商品がEURUSDでバランス通貨がRURの場合に起こります......。といった組み合わせで私の理解では、バランス通貨は、通貨ペアの2番目の通貨名と同じでなければなりません。そうでない場合は、(ストラテジーテスターで)0値を返すので、目的の組み合わせでテストを行うことは不可能です。この問題を解決するにはどうすればいいのか。

 
ikatsko:

ストラテジーテスターの コマンドMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) これは、例えば、商品がEURUSDでバランス通貨がRURの場合に発生します ...。といった組み合わせで私の理解では、バランス通貨は、通貨ペアの2番目の通貨名と同じでなければ なりません。そうでない場合は、(ストラテジーテスターで)ゼロ値を返すので、目的の組み合わせでテストを行うことは不可能です。この問題を解決するにはどうすればいいのか。

ハイライトがおかしい!EURUSD、GBPUSDなどで ユーロ建てで計算しています。オンにしたときだけ、最初のデータの前に0が出ることが あるので、TICKVALUEで計算する前にif != 0という 条件を付けています。

テスターでは、MarketInfo()が 機能しない場合があるので、1ティックのおおよその価格を知り、IsTesting() || IsOptimization() || IsVisualMode() という条件で設定しています。

 

2つのペアを同時に取引するスクショを作るのを手伝ってください。

最初のペアの場合、変数は次のようになります。

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

2作目はどうなるんだろう?

または、最初の文字で取引を開始するコードは次のようになります。

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

2つ目のシンボルのコードがどのように見えるか

 
pavlicos:

2つのペアを同時に取引するスクショを作るのを手伝ってください。

最初のペアの場合、変数は次のようになります。

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

2作目はどうなるんだろう?

または、最初の文字で取引を開始するコードは次のようになります。

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

2つ目のシンボルのコードがどのように見えるか

NULL またはSymbol() はチャートペアを意味する。文字列mySymbol = Symbol()を使って、両者を区別することができます。それから、2つのEAのコピーを対応するチャートで使い、異なるマジックシンボルを割り当てれば確実ですがんばってください。
 
pavlicos:

2つのペアを同時に取引するフクロウを作るのを手伝ってください。

最初のペアの場合、変数は次のようになります。

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

2作目はどうなるんだろう?

または、最初の文字で取引を開始するコードは次のようになります。

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

2つ目のシンボルのコードがどのように見えるか

// в OnTick()
double open_nzdusd_CUR=GetNormalizeOpenPriceBySymbol("NZDUSD",Period(),0);    // цена открытия текущей свечи NZDUSD
double open_audusd_M15=GetNormalizeOpenPriceBySymbol("AUDUSD",PERIOD_M15,1);  // цена открытия прошлой свечи AUDUSD на M15
//+------------------------------------------------------------------+

// функция вне тела OnTick()
//+------------------------------------------------------------------+
double GetNormalizeOpenPriceBySymbol(string sy, int timeframe, int shift) {
   int digits=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
   return(NormalizeDouble(iOpen(sy,timeframe,shift),digits));
}
//+------------------------------------------------------------------+

オープニングでは、あくまでコンセプトそのものを紹介します。

string symbol="AUDUSD";
double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int spread=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
int value=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
int level=(value==0)?spread*2:value;
//---
double sl_b=(StopLoss==0)?0:NormalizeDouble(fmin(ask-StopLoss*pt,ask-(level+1)*pt),digits);
double tp_b=(TakeProfit==0)?0:NormalizeDouble(fmax(ask+TakeProfit*pt,ask+(level+1)*pt),digits);
ticket_b=OrderSend(symbol,OP_BUY,Lots,ask,3,sl_b,tp_b,"",0,0,clrGreen);
//---
double sl_s=(StopLoss==0)?0:NormalizeDouble(fmax(bid+StopLoss*pt,bid+(level+1)*pt),digits);
double tp_s=(TakeProfit==0)?0:NormalizeDouble(fmin(bid-TakeProfit*pt,bid-(level+1)*pt),digits);
ticket_s=OrderSend(symbol,OP_SELL,Lots,bid,3,sl_s,tp_s,"",0,0,clrRed);

トレードサーバーのリターンコードを 確認することなく

 
今日、端末のナビゲーターが突然画面の幅いっぱいに広がり、チャートが見えなくなりましたいつもマーケットウォッチと同じ幅だったんですよー。探しても探しても、前のサイズに戻す方法が見つからない!?この新しい迷惑行為に対処する方法を知っている人を助けてください。ありがとうございます!!!