スイッチ { case ERR_NO_ERROR: exit_loop = trueとする。 が壊れる。
{ case ERR_SERVER_BUSY: case ERR_NO_CONNECTION: case ERR_INVALID_PRICE: case ERR_OFF_QUOTES: case ERR_BROKER_BUSY: case ERR_TRADE_CONTEXT_BUSY: cnt++です。 が壊れる。
スイッチ { case ERR_NO_ERROR: exit_loop = trueとする。 が壊れる。
{ case ERR_SERVER_BUSY: case ERR_NO_CONNECTION: case ERR_INVALID_PRICE: case ERR_OFF_QUOTES: case ERR_BROKER_BUSY: case ERR_TRADE_CONTEXT_BUSY: cnt++です。 が壊れる。
くし
タイプ変換によるデータ損失の可能性 .mq4 1697 29
SLでタイプDoble。
最近のコンパイラは厳しくて、MarketInfoはdouble型を返す、みたいな感じになっているはずです。
最近のコンパイラは厳しくて、MarketInfoはdouble型を返す、みたいな感じになっているはずです。
sumbol "変数は正しいです、私はモディファイヤーラッパーで変数として持っています。
ありがとうございます。(int)を入れたらすべてうまく いきました。
以前はどうやったのか分かりません。EAを書いた 経験は21日です))
いつからEAを書くようになったのか、ちゃんとしたやり方がわかりません(笑)。
Leanid Aladzyeu:
以前はどうやってEAを書いて いたのかわかりません(21日間書き続けて います))。そして、私のEAはしつこく無料EAの上位に食い込んできています))
600版までの古いMQL4はひどかったので、とてもラッキーでしたね ))MQL4 Expert Advisorのリンクを送ってください。
なぜか最後の行でエラーになります。
'}'- すべてのコントロールパスが値を返すわけではない Expert4.mq4
すべての非void関数はreturn演算子で終了する必要があります。
ビデオチュートリアルのこのコードを見ているだけですが、古いビルド用かもしれません。
#include#include<stderror.mqh>とする。
//+------------------------------------------------------------------+//|Expert4です。mq4|(エムキューブ
//|ミハイル|
//||
//+------------------------------------------------------------------+
#property copyright"Mikhail"
#プロパティリンク ""
#property version "1.00"
#プロパティの厳密さ
int signal = 1;
int start()
{
if (signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue)を実行。
}
return(0)です。
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss),
double takeprofit,stringコメント=NULL,intマジック=0,datetime有効期限=0,カラーarrow_color=CLR_NONE)
{
int err = GetLastError()。
err = 0;
bool exit_loop = false;
int ticket = -1;
int Retry = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError()。
スイッチ
{
case ERR_NO_ERROR:
exit_loop = trueとする。
が壊れる。
{ case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
cnt++です。
が壊れる。
case ERR_PRICE_CHANGED:
RefreshRates()。
を続ける。
のデフォルトになります。
exit_loop +true。
が壊れる。
}
if (cnt> Retry)
exit_loop = trueとする。
if (!exit_loop)
{
Sleep(1000)です。
RefreshRates()。
}
さもなくば
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
return(ticket)です。
}
Print("Error: order open failed after" + cnt + "atempts");
return(-1)です。
}//while
}//if
}//exit
ここで...
}
}
return(ticket)です。
}
フォーラムでコードを正しく挿入 する
なぜか最後の行でエラーになります。
'}'- すべてのコントロールパスが値を返すわけではない Expert4.mq4
すべての非void関数はreturn演算子で終了する必要があります。
このコードはビデオチュートリアルで見ただけですが、古いビルド用かもしれません。
#include#include<stderror.mqh>とする。
//+------------------------------------------------------------------+//|Expert4です。mq4|(エムキューブ
//|ミハイル|
//||
//+------------------------------------------------------------------+
#property copyright"Mikhail"
#プロパティリンク ""
#property version "1.00"
#プロパティの厳密さ
int signal = 1;
int start()
{
if (signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue)を実行。
}
return(0)です。
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss),
double takeprofit,stringコメント=NULL,intマジック=0,datetime有効期限=0,カラーarrow_color=CLR_NONE)
{
int err = GetLastError()。
err = 0;
bool exit_loop = false;
int ticket = -1;
int Retry = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError()。
スイッチ
{
case ERR_NO_ERROR:
exit_loop = trueとする。
が壊れる。
{ case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
cnt++です。
が壊れる。
case ERR_PRICE_CHANGED:
RefreshRates()。
を続ける。
のデフォルトになります。
exit_loop +true。
が壊れる。
}
if (cnt> Retry)
exit_loop = trueとする。
if (!exit_loop)
{
Sleep(1000)です。
RefreshRates()。
}
さもなくば
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
return(ticket)です。
}
Print("Error: order open failed after" + cnt + "atempts");
return(-1)です。
}//while
}//if
}//exit
フォーラムでコードを正しく挿入 する
またラグってしまった、収拾がつかない。
大丈夫です、どのブラウザをお使いですか?別のものに変えてみてください。FFoxを持っています。一番最後のコードのコメントで答えを出しました。