エラーコード

newoptionz  

こんにちは。

invalid stops err 130 というエラーメッセージが表示されます。

私の値をプリントアウトすると、次のようになります。

2006.06.29 13:15:05 AUDUSD,H1: OrderDetails:SellPrice :0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,スリッページ : 2

私は以下のようにして、注文を出す前にslとtpを確認しています。

/

if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;

if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);

時々、以下のように売りが通ることがあります。

2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok

私のストップチェックが正しく機能して いないだけかもしれません。

何か提案はありますか?

削除済み  

注文の出し方に間違いがあるのだと思います。逆指値 注文を使用している場合、その注文は市場価格に近すぎます。通常、買いストップは現在のアスクから少なくとも "MarketInfo(Symbol(),MODE_STOPLEVEL)" ピップ離れている必要があります。

逆指値注文をする場合は、RefreshRates()を使用してから、必要な距離だけ離れたところに注文を出すようにしてください。動きの速い市場では、それでもうまくいかないことがあり、さらに離れた場所に注文を出す必要があります。

これがお役に立てれば幸いです。

newoptionz  

ストップではなく、バイ/セルです

こんにちは

ありがとうございます、しかし、それはストップではなく、取引 - 買い/売りです、私は2*MarketInfo(シンボル()、MODE_STOPLEVEL)を試してみます。

eli  
cardio:
こんにちは

エラーメッセージ invalid stops err 130 i.e. が表示されます。

自分の値をプリントアウトすると、以下のようになります。

2006.06.29 13:15:05 AUDUSD,H1: OrderDetails:SellPrice :0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,スリッページ : 2

私は以下のようにして、注文を出す前にslとtpを確認しています。

/

if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;

if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);

時々、以下のように売りが通ることがあります。

2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok

多分、私のストップチェックが正しく機能していないだけだと思います。

何か提案はありますか?

たぶん、あなたは買いでも売りでも "+ 3 "を使っているのでしょう。売りでは、有効な価格にするために "-3 "を置く必要があります。

newoptionz  

めんどくさくない

私は、インターバンクFXが市場がタイトなときにスキャルピングを防ごうとしているのではと思い始めています。 市場がタイトでないときは動作します。それでも、一旦、自分のslとtpがMarketInfo(Symbol(),MODE_STOPLEVEL)よりも大きければ、取引を開始するはずなので、混乱するのです。

とにかく、私が使っているコードは以下の通りです。

StopLoss = NormalizeDouble((TradeAbovePct/100)*(DemaH-DemaL)*(1/Point),0);

if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;

TakeProfit = NormalizeDouble(2*((DemaH-DemaL)*(1/Point)),0);

if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);

//Then I call a buy and sell as needed

//e.i

OpenBuy1(10);

OpenSell1(10);

////////////////////////////////////////////////

bool OpenBuy1(int pips1)

{

int ticket;

string comment="";

//reset defaults

use_MTBE = use_MTBEd;

use_split = use_splitd;

RefreshRates();

price1 = Ask;

stoploss1 = NormalizeDouble(price1-StopLoss*Point,Digits);

tp1 = NormalizeDouble(price1+TakeProfit*Point,Digits);

//expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;

Print("Openbuy lots: ", Lots);

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Orange);

else

ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,0,tp1,comment,MAGICMA,0,Orange);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("BUY order opened : ",OrderOpenPrice());

//time1 = CurTime()+2*60*Period();

return(true);

}

}

else

{

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

Print("OrderDetails: BuyPrice : ",price1," ,CurrentAsk : ", Ask," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);

return(false);

}

}

bool OpenSell1(int pips1)

{

int ticket;

string comment="";

//reset defaults

use_MTBE = use_MTBEd;

use_split = use_splitd;

RefreshRates();

price1 = Bid;

stoploss1 = NormalizeDouble(price1+StopLoss*Point,Digits) ;

tp1 = NormalizeDouble(price1-TakeProfit*Point,Digits);

// expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;

Print("Opensell lots: ", Lots);

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Red);

else

ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,0,tp1,comment,MAGICMA,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("SELL order opened : ",OrderOpenPrice());

// time1 = CurTime()+2*60*Period();

return(true);

}

}

else

{

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

Print("OrderDetails: SellPrice : ",price1," ,CurrentBid : ", Bid," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);

return(false);

}

}

ignacio  

ヘルプ - エラー 138 注文を開く

こんにちは。

さて、あなたが見ることができるように、私はこのフォーラムで初心者だ。私はアルゼンチンからイグナシオ、です。私は簡単なEAを開発しようとしています。

ストラテジーは "ready "だと思います。しかし、バックテストを実行すると、注文が開いていないのです。デバッグ情報を印刷したところ、条件はOKでした。OrderSend関数が 投げるエラーは138です。

コードは以下の通りです。

RefreshRates();

OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);

何が問題なのか、どなたか説明していただけませんか?

皆さん、ありがとうございます。

ign...

削除済み  
ignacio:
こんにちは。

さて、ご覧の通り、私はこのフォーラムでは初心者です。私はアルゼンチンからのIgnacio、です。簡単なEAを開発しようとしています。

ストラテジーは "ready "だと思います。しかし、バックテストを実行すると、注文が開いていないのです。デバッグ情報を印刷したところ、条件はOKでした。OrderSend関数が投げるエラーは138です。

コードは以下の通りです。

RefreshRates();

OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);

何が問題なのか、どなたか説明していただけませんか?

ありがとうございました。

イグニッション...

138エラー はrequoteがあったことを意味します。スリッページの値を3から5の間のような大きなpip値を使ってみましたか?

eli  

バックテストでは、requoteのようなことはないのではと思います。私の考えでは、問題は、バックテストでrequoteの問題を引き起こす可能性のある "RefreshRates "のために起こっていると思います。次のように考えてみてください。

if (!isTesting())RefreshRates()。

ignacio  

ご回答ありがとうございました。

Majiさん、ループの中でスリッページの値をいくつかテストしましたが、OrderSendは同じエラーになります。

elihayunさん、私はあなたの条件を追加しましたが、まだ同じエラーです。

何度もテストしましたが、良い結果は得られませんでした。

何か提案はありますか?私は本当にもっと深刻な別のEAを行うために、この1を終了したいです。

ありがとうございました。

ign...

eli  

まず、エラーメッセージを表示させるには、次のようにします。

プロパティリンクの後に、次の行を追加します。

#プロパティリンク "http://www.elihayun.com"

#include

次に、エラーを確認 するために、次のようにします。

int err = GetLastError();

if (err != 0)

{

Print("Error # ", err, " ", ErrorDescription(err));

}

あなたの問題については、私は他の問題を考えることはできません。多分、あなたは別のRefreshRates() を使用しています。

// RefreshRates()

ignacio  
elihayun:
まず、エラーの説明を取得するために、次のようにします。

プロパティリンクの後に、次の行を追加してください。

#プロパティリンク "http://www.elihayun.com"

#インクルード

エラーを確認するには、次のようにします。

int err = GetLastError();

if (err != 0)

{

Print("Error # ", err, " ", ErrorDescription(err));

}[/PHP]

For your problem, I cannot think of another problem. Maybe u are using another RefreshRates() Try to comment them out

// RefreshRates()

以下は、スクリプトの実行結果です。

2006.07.02 11:07:15 2006.01.04 12:00 eaButler EURUSD,H4: Error Description [#138]: requote

2006.07.02 11:07:15 2006.01.04 12:00 stdlib EURUSD,H4: loaded successfully

そしてこれがそのコードです。

[PHP]

last_ticket = OrderSend( Symbol(), OP_SELL, Lots, Slippage, Bid, 0.0, 0.0, c , magic_number, 0, Red);

if(last_ticket < 0)

{

rv = GetLastError();

Print("エラーの説明 [#"+ rv + "]:" + ErrorDescription(rv));

理由: