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

 

スクリプトに行を追加したのですが(BUYSTOPとSELLSTOPを追加)、コンパイルができず、エラーが発生します。何が問題なのか、教えていただけませんか?

#property copyright"Copyright © 2010, Khlystov Vladimir".
#プロパティリンク "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
extern int stoploss = 0, //SLのレベル、0ならSLは出展されません。
extern int takeprofit = 0, //t TPレベル、0ならTP非展示
extern int Magic = 123456; //注文番号
extern bool BUY = false; //買いの注文を出す
extern bool SELL = false; //売りの注文を出す
extern bool BUYSTOP = false, //BUYSTOP注文を開始する。
extern bool SELLSTOP = false, //SELLSTOP注文を開始する。
extern double Lot = 0.1; // 注文数量
extern int slippage = 3; //成行注文で許容される最大限の価格偏差
//--------------------------------------------------------------------
ダブルSL,TP。
//--------------------------------------------------------------------
int start()
{
なら
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「買付」。)
}
売ったら
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「売り」)。
}
イフ (BUYSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「バイ・ストップ」という。)
}
if (SELLSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(「売りストップ」)。
}
return(0)です。
}
//--------------------------------------------------------------------
void OPENORDER(string ord)
{
int error,err;

{error=true。
if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP, "BUY",Magic,0,Blue);
if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP, "SELL",Magic,0,Red);
if (ord=="BuyStop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask,Digits),SL,TP, "BUYSTOP",Magic,0,Blue);
if (ord=="SellStop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid,Digits),SL,TP, "SELLSTOP",Magic,0,Red);
if (error==-1) //買い付け失敗 OK
{
ShowERROR()。
err++;Sleep(2000);RefreshRates()。
}
if (error || err >10) return;
}
を返します。
}
//--------------------------------------------------------------------
void ShowERROR()
{
int err=GetLastError();
スイッチ ( err )
{
case 1: return;
case 2: Alert("No connection to the trade server ",Symbol());リターン。
case 3: Alert("Error incorrect parameters ",Symbol());戻り。
case 130: Alert("Error close Ticket stops ",Symbol());戻り。
case 134: Alert("Not enough money ",Symbol());return。
case 146: Alert("Error Trade Subsystem is busy ",Symbol());戻り。
case 129: Alert("Error Wrong price ",Symbol());戻り。
case 131: Alert("Error Incorrect volume ",Symbol());戻り。
case 4200:Alert("Error Object already exists ",Symbol());return。
default: Alert("Error ",err," ",Symbol());戻り。
}
}
//--------------------------------------------------------------------

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

 
nemo811:

演算子を「,」ではなく「;」で終わらせることはできますか?

 
FreeLance:

演算子を「,」ではなく「;」で終わらせることはできますか?


ありがとうございます、勉強中です :)))ありがとうございます。
 
nemo811:

ありがとうございます、勉強中です :)))ありがとうございます。

ありがとうございます!自分もそうなんですけど...。;)
 
FreeLance:

ありがとうございます!自分もそうなんですけど...。;)

:))))さらに燃える質問です。このスクリプトは、成行注文を開きますが、未決済注文は出しません。また失敗してしまった。何が問題なのか、教えていただけませんか?
 
nemo811:

:))))さらに切実な問題です。このスクリプトは、成行注文を開きますが、未決済注文は出しません。また失敗してしまった。何が問題なのか、教えてください。

その背景にあるトレーディングの考え方とは?
 
手動で設定した注文を無視するEAがあるのですが、どうしたらいいですか?私が修正しようとしているスクリプトは、「手動」注文を魔法のパラメータを持つ注文に変えるように設計されています。そういうことです)。
 
nemo811:
手動で設定した未決済注文を無視するEAがあるのですが、どうしたらいいですか?私が修正しようとしているスクリプトは、「手動」注文をマジックパラメーター付きの注文に変えるために設計されています。そういうことです)。


おやすみなさい!

わからなくて......だから、先延ばしにしていたんです。

でも、あなたも、ゆっくり時間をかけて、数学を勉強してください。

言語も操作対象もシンプルに...。

実行は時々ダサい?

つまり、双方に弛緩があるわけです。

;)

 

上記のコードを修正しました。ペンダントはセットされていません。エラーを見つけるのに苦労しています。

#property copyright"著作権 © 2010, Khlystov Vladimir".
#プロパティリンク "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
extern int stoploss = 0; //SLのレベル、0ならSLは表示されない
extern int int takeprofit = 0; //t TPレベル、0ならTP非展示
extern int int Magic = 123456; //注文番号
extern bool BUY = false; //買いの注文を出す
extern bool SELL = false; //売りの注文を出す
extern bool BUYSTOP = false; //BUYSTOP注文を開始します。
extern bool SELLSTOP = false; //SELLSTOP注文を開始します。
extern double Lot = 0.1; // 注文数量
extern int slippage = 3; //成行注文で許容される最大限の価格偏差
extern int DistanceSet = 20; //市場距離
//--------------------------------------------------------------------
ダブルSL,TP。
//--------------------------------------------------------------------
int start()
{
なら
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「買付」。)
}
売ったら
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「売り」)。
}
イフ (BUYSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「バイ・ストップ」という。)
}
if (SELLSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(「売りストップ」)。
}
return(0)です。
}
//--------------------------------------------------------------------
void OPENORDER(string ord)
{
int error,err;

{error=true。
if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,",Magic,0);
if (ord=="BuyStop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="SellStop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (error==-1) //買い付け失敗 OK
{
ShowERROR()。
err++;Sleep(2000);RefreshRates()。
}
if (error || err >10) return;
}
を返します。
}
//--------------------------------------------------------------------
void ShowERROR()
{
int err=GetLastError();
スイッチ ( err )
{
case 1: return;
case 2: Alert("No connection to the trade server ",Symbol());リターン。
case 3: Alert("Error incorrect parameters ",Symbol());戻り。
case 130: Alert("Error close Ticket stops ",Symbol());戻り。
case 134: Alert("Not enough money ",Symbol());return。
case 146: Alert("Error Trade Subsystem is busy ",Symbol());戻り。
case 129: Alert("Error Wrong price ",Symbol());戻り。
case 131: Alert("Error Incorrect volume ",Symbol());戻り。
case 4200:Alert("Error Object already exists ",Symbol());return。
default: Alert("Error ",err," ",Symbol());戻り。
}
}
//--------------------------------------------------------------------

ありがとうございます。

 
Dimka-novitsek:


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

総じて、軸やビットに問題があるわけではないことがわかり、解決には至りませんでした。

それは、あなたの主張がとてもおかしいのです。思いの強さからリンゴは上に飛ばないが、頭の上に落ちてくる...。

そういう ものであり、それ以外の何ものでもない。

それとも、ある特定の国に住んでいて、すべてが厳密に逆になっているのでしょうか。利益 - 価値にマイナスがついているのでしょうか?1.0100で買い、1.0200で売る(この水準で取る、つまり買い値より 高く取る)ことを考えるのです。100ポイントの利益が出た。それ以外の方法はない。1.0000のレベルでテイクを設定しようとすると、エラー130 - 間違ったストップが表示されます。買付(OP_BUY)が始値より低くなることはありません。そしてストップは、まさにその逆で、買いポジションの始値より低くなければなりません。売りの場合はその逆で、テイクはオープンプライスより低く、ストップは高くなります。

数学だけでなく、中学1年生の算数も学ぶ必要があるようだ...。悪気はないんです。