2021.12.04 13:56:09.509 TestGenerator: unmatched data error (high value 1.13110 at 2021.12.03 23:45 is not reach from lowest timeframe, high price 1.13104 mismatches.).
2021.12.04 13:56:09.509 TestGenerator: unmatched data error (high value 1.13110 at 2021.12.03 23:45 is not reach from lowest timeframe, high price 1.13104 mismatches.).
tpはどのように計算するのですか?
変数に double tp=50 を指定しています。
変数に double tp=50 を指定しています。
扨措き
2021.12.04 13:56:09.509 TestGenerator: unmatched data error (high value 1.13110 at 2021.12.03 23:45 is not reach from lowest timeframe, high price 1.13104 mismatches.).
をちょっとつけてみると...効く...。
が、停止位置が違う
1 2021.09.16 05:59 売り 1 0.01 1.18190 51.18192 1.18140 0.00 10000.00
扨措き
2021.12.04 13:56:09.509 TestGenerator: unmatched data error (high value 1.13110 at 2021.12.03 23:45 is not reach from lowest timeframe, high price 1.13104 mismatches.).
ルールはすべてオンラインで公開されているので、ご自身で確認してください。
ルールはすべてオンラインで確認できますので、ご自身でお確かめください。
ありがとうございました。
こんばんは。2つ目の注文を開くときにアドバイザーがエラーを出すのはなぜか、アドバイスをお願いします。
アドバイザーの文章そのもの
//+----------------------Параметры-----------------------------------+
input int TakeProfit = 100; // 利益をpipsで表示します。
input int StopLoss = 50; // 損失額(ピップス単位
input double Lot = 0.01; // スタートロット
input double Multilot = 1.95; // 開始ロットの倍率
input int Slippage =30; // スリッページ
input int MagicNumber = 333 ; // 一意な数字
//+------------------------------------------------------------------+
//| 専門家による初期化機能
//+------------------------------------------------------------------+
double tp=0;
double sl=0;
int OnInit()
{
tp=NormalizeDouble(TakeProfit*Point(),Digits())です。
sl=NormalizeDouble(StopLoss*Point(),Digits())です。
return(INIT_SUCCEED);
}
//+------------------------------------------------------------------+
//| エキスパートティック機能
//+------------------------------------------------------------------+
void OnTick()
{
//--Expert Advisor がアクティブになったときに、ループは未決済注文をチェックし、それらを計算します。
int buy=0; //買い注文の数
int sell=0; //SELL(売り)注文の数
for(int i = OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())とする。
if(OrderMagicNumber()== MagicNumber)
{
if(OrderType()==OP_BUY)
買う++。
if(オーダータイプ()==OP_SELL)
を売る++。
}
//--EA起動時に最後に決済された注文のデータを取得するループです。
int type=-1; //閉じたオーダーのタイプ
int history_close_orders=0; //クローズしたオーダーの数
double lot=0; //最後に決済された注文のロット
double profit=0; //最後の注文が決済されたときの利益額
datetime time=0; //最終注文の締切時間
for(int i = OrdersHistoryTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol())とする。
if(OrderMagicNumber()== MagicNumber)
if(OrderCloseTime()>時間)
{
history_close_orders++;
time = OrderCloseTime();//最後の注文の終了時刻
lot= OrderLots();//最後に決済された注文のロット
type=OrderType();//最後に決済された注文の種類
profit=OrderProfit()*OrderSwap()*OrderCommission();//最後に決済された注文の利益額
}
//EAが動作するロットを計算します。
double Lots_Work=0;// 作業ロット
if(history_close_orders==0 || profit>0)// 引けた注文がない、または最後の注文が利益で引けた場合。
Lots_Work=Lot;//作業ロットは初期ロットと同じです。
if(history_close_orders>0 && profit<0) // 最後の注文が赤で決済された場合
Lots_Work=1;// 作業ロットは、最後の注文のロットに倍率を掛けたものになります。
//最初の買い注文を出す
if(買い=0 || 利益>0)
{
int ticket=OrderSend(Symbol(,OP_BUY,Lots_Work,Ask,Slippage,0,0, "Expert Advisor Test fair",MagicNumber,0,clrGreen));
if(チケット<0)
Print("OrderSendはエラー#で失敗しました",GetLastError());
さもなくば
Print("OrderSendが正常に完了しました");
}
// 2回目以降の買い注文の開始
if(buy==0 && type==OP_BUY && profit<0)
{
int ticket=OrderSend(Symbol(),OP_BUY,Lots_Work,Ask,Slippage,0,0, "EA Test fair",MagicNumber,0,clrGreen);
if(チケット<0)
Print("OrderSendはエラー#で失敗しました",GetLastError());
さもなくば
Print("OrderSendが正常に完了しました");
}
// 最初の売り注文の 開始
if(sell==0 || profit>0)
{
int ticket=OrderSend(Symbol(),OP_SELL,Lots_Work,Bid,Slippage,0,0, "EA Test fair",MagicNumber,0,clrRed);
if(チケット<0)
Print("OrderSendはエラー#で失敗しました",GetLastError());
さもなくば
Print("OrderSendが正常に完了しました");
}
// 2回目以降の買い注文の開始
if(sell==0 && (type==OP_SELL && profit<0)))
{
int ticket=OrderSend(Symbol(),OP_SELL,Lots_Work,Bid,Slippage,0,0, "Expert Advisor Test fair",MagicNumber,0,clrRed)。
if(チケット<0)
Print("OrderSendはエラー#で失敗しました",GetLastError());
さもなくば
Print("OrderSendが正常に完了しました");
}
//--テイクプロフィット、ストップロスを追加して注文を変更する。
for(int i = OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderSymbol()==Symbol())とする。
if(OrderMagicNumber()== MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(OrderStopLoss()==0 || OrderTakeProfit()==0))
if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-sl,Digits(),NormalizeDouble(OrderOpenPrice()+tp,Digits(), 0,clrGreen)))。
Print("OrderModify OK!");
さもなくば
Print("OrderModify BUY failed #", GetLastError());
}
if(オーダータイプ()==OP_SELL)
{
if(OrderStopLoss()==0 || OrderTakeProfit()==0))
if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+sl,Digits(),NormalizeDouble(OrderOpenPrice()-tp,Digits(),0,clrRed)))
Print("OrderModify OK!");
さもなくば
Print("OrderModify SELL failed #", GetLastError());
}
}
}
//+------------------------------------------------------------------+
私の古いi3プロセッサ搭載のノートパソコンには、まだWinXP 32bitがインストールされており、未対応のMT5が搭載されていました。最近、メモリを6GBに増設したので、MT4とMT5が動く64bitOSをインストールしたい。Win7とWin8.1ではどちらが良いですか?
10
10