[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 65

 
Vinin:

自分のやり方でやるから、カウントダウンが違う。私はいつも過去から現在に至るまで。好みの問題ですけどね。実は、正しいアプローチであれば、それはあまり重要ではありません。

こんにちは。

ページにご協力ください。(ポスト56、58ページ)。

 
Roger:


たぶん早すぎるんだよ、少しは勉強した方がいい。:-)

そうすると、アスクで買って、ビッドで売るということがわかるはずです。もし売るとしたら、その価格は売出価格より低くなる。


いや、あなたが書いたのとは正反対です。 もちろん、ご清聴ありがとうございました。 一生懸命考えて、あれこれ考えて、あなたが間違っているのです。

一般的には、AksとBidsに問題があるわけではないと見ており、解決していない。

 
Dimka-novitsek:

すみません、私も一緒です。 こちら、コードを噴出したところ、うまくいきません。

//+------------------------------------------------------------------+
//|オーダータイプ.mq4
//| 著作権 © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "著作権 © 2011, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
double New_Time=0,razniza, r;int i=0,h=0,q=0,w=0,s=0,g=0;
int start()
{int M,Y;
//----
double ticket,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT)です。
//----
if (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points)。
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time);i++;}。
Alert("OrderTypeOP_BUYSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES).OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );



if (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points)。
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time);h++;}。
Alert("OrderTypeOP_SELLSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

if (q<10)
{
ticket=OrderSend(Symbol()、OP_BUY、Lots、Bid、3、0、5*Points+TakeProfit*Points。
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time); q++; }.
Alert("OrderTypeOP_BUY",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES ).OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( ticket,Lots,Bid,5, 0 );

if (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time);w++;}。
Alert("OrderTypeOP_SELL",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES ).OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( ticket,Lots,Ask,5, 0 );

if (s<10)
{
ticket=OrderSend(Symbol()、OP_BUYLIMIT、Lots、fractal_u-5*Points、3,0、fractal_u-5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time);s++;}。
Alert("OrderTypeOP_BUYLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( ticket,Lots,Ask,5, 0 );

if (g<10)
{
ticket=OrderSend(Symbol()、OP_SELLLIMIT、Lots、fractal_u+5*Points、3、0、fractal_u+5*Points+TakeProfit*Points)。
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];}.Alert("New_Time",New_Time);g++;}。
Alert ("OrderTypeOP_SELLLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );






//----
return(0)です。
}
//+------------------------------------------------------------------+

かなり早く作りました。注文の種類を数値で取得する目的で設定し、全ての注文を連続で開閉する、つまり全ての種類を開閉するようにしました。OrderCloseをインストラクションで確認したところ、パラメータは合理的に、正しく、その場所に規定されているようです。 他に一体何が必要なのでしょうか?

 

Alert("現在の時刻の 日", iTime(NULL,PERIOD_D1,5));

を追加し、0にしました。

Alert("",GetLastError());

がエラー4054を出す

err_incorrect_seriesarray_using4054時系列配列の誤使用

私は何を間違えているのだろう?


 

よろしくお願いします。このコードでは、すべてのペアの成行注文を削除する必要がありますが、実際にはEAがスローされたウィンドウ上のものだけを削除しています。エラーの原因を教えてください。


void CloseAll_b(int Prosk){。
文字列 SMB=Symbol()。
for (int i=OrdersTotal()-1;i>=0;i--){。
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){。
Alert("Error ",GetLastError()," when order number is selected ",OrderTicket()," by pair ",Symbol()))。
}
else{
if(OrderSymbol()!=Symbol()){continue;}。
RefreshRates()。
if(OrderType()==OP_BUY){。
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){の場合。
買い注文の決済時にAlert("Error ",GetLastError(),",OrderTicket(),",Symbol())) を表示。
}
}
if(OrderType()==OP_SELL){。
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){。
Alert("エラー",GetLastError(),{ 売り注文番号が終了したとき ",OrderTicket(),{ ペアで ",Symbol()));
} } } } }

よろしくお願いします。

 
nemo811:

よろしくお願いします。このコードでは、すべてのペアの成行注文を削除する必要がありますが、実際にはEAがスローされたウィンドウ上のものだけを削除します。エラーの原因を教えてください。


が、自分で制約を設定するのです :))

if(OrderSymbol()!=Symbol()){continue;}。

 
sergeev:

が、自分で制約を設定するのです :))

if(OrderSymbol()!=Symbol()){continue;}。


そうですね~バカですね :))どうあるべきか?
 
nemo811:

そうだなー、バカだなー :)))正しい方法とは?
...削除すればいいんだよ。 通貨を淘汰されたくないんだろう。だから、条件を外す必要があるんです。
 
削除したのですが、他のペアの注文がまだ決済されないのです。129エラー(価格違い)が出るようになった
 
nemo811:
削除したのですが、とにかく他のペアの注文が成立しません。129エラー(間違った価格)が表示され続ける

をクリックすると、ポップアップが表示されます。

MarketInfo 関数から Bid と Ask を取得する必要があります。

like - ask= MarketInfo(OrderSymbol(), MODE_ASK);

と正規化することを忘れないでください。
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS))