コーディングの方法は? - ページ 206 1...199200201202203204205206207208209210211212213...347 新しいコメント Pheniox 2009.09.21 21:44 #2051 外部*.setファイルの使用 私は何度も試してみましたが、この問題を理解することができません。 私はEAをプログラムして、プログラムされた設定を使用するか、または外部*.setファイルを使用するようにしたいのです。 そこで、もし extern bool UseExternSet = true; とすると、プログラムされた設定ではなく、外部のセットファイルの設定を使用することになります。 それができることを知っているが、ここで単純に失われた。 どのようなeaの例ではありません バーナード username1 2009.09.22 20:58 #2052 コンパイラの問題かコードの問題か? extern int ma1period=5; extern int ma1method=1; extern int ma1tf=0; extern int ma2period=5; extern int ma2method=1; extern int ma2tf=10080; extern double lots=1; int init(){} int deinit(){} double CMA (int tf,int period, int shift, int method) { double MA=iMA(NULL,tf,period,0,method,0,shift) return(MA) } int start() { int BarsCount=0; if (Bars> BarsCount) { BarsCount=Bars; double ma1.1=CMA(ma1tf,ma1period,1,ma1method); double ma1.2=CMA(ma1tf,ma1period,2,ma1method); double ma2.1=CMA(ma2tf,ma2period,1,ma2method); double ma2.2=CMA(ma2tf,ma2period,2,ma2method); bool ma1upsignal =ma1.2<ma1.1; bool ma1downsignal =ma1.2>ma1.1; bool ma2upsignal =ma2.2<ma2.1; bool ma2downsignal =ma2.2>ma2.1; if (ma1upsignal&&ma2upsignal) { OrderSend(Symbol(),OP_BUY,lots,Ask,3,NULL,NULL,NULL,NULL,0,Green); } if (ma1downsignal&&ma2downsignal) { OrderSend(Symbol(),OP_SELL,lots,Bid,3,NULL,NULL,NULL,NULL,0,Green); } if ((ma1upsignal&&ma2downsignal)||(ma1downsignal&&ma2upsignal)) { int total=OrdersTotal(); //Script to close all open orders. for(int i=total-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); int type = OrderType(); switch(type) { //Close opened long positions case OP_BUY : OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); break; //Close opened short positions case OP_SELL : OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); } } } } これは、私が取り組んでいるコードの一部です。コンパイラは、「変数BarsCountが定義されていません」と言います。どうすればいいのでしょうか?私が見る限り、この変数は初期化され、値も与えられています。 これはコンパイラの問題なのでしょうか、それともコードの問題なのでしょうか? ファイル: capture2_1.png 12 kb How to code? Need Help Spotting Coding MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Michel 2009.09.22 21:18 #2053 [CODE] (コード) double CMA (int tf,int period, int shift, int method) { double MA=iMA(NULL,tf,period,0,method,0,shift)。 return(MA); } username1 2009.09.22 21:42 #2054 username1:[CODE]です。double CMA (int tf,int period, int shift, int method) { double MA=iMA(NULL,tf,period,0,method,0,shift)。 return(MA); } Michelです。 ありがとうございます。これで問題解決です :-) Michael 2009.09.22 22:03 #2055 連続したバーをカウントする 連続した売買バーをカウントする方法をご存知の方はいらっしゃいますか? 私はチャート(チェックするバーの 数を入力します)1連続した売りバー、32連続した売りバー、3連続した売りバー、4連続した売りバー(同じw /買い)などがある何回をカウントしたいのですが。 ループさせる必要があることは分かっているのですが、その方法がよく分かりません。 結果はComment()の中に入れることができます。 ありがとうございます。 bellco 2009.09.23 02:41 #2056 なぜ私のプログラムは動作しないのですか? 簡単なプログレを書きました。 一度に一つの注文を入れ、利食いか損切りで終了することになっている。 これはGBPUSDのM30にセットアップされています。 私は:プログでsed定数のいくつかは、 "目測 "推定によって見つけられます。これはプログに大きな影響を与えないはずです...また、異なる定数では動作しません。(少なくとも、Strategy Testerで テストする場合、fastかmediumに設定します。"tick by tick "ではありません。(遅すぎる...)。 とにかく、このプログをテストしたところ、注文を入れることも、「上」方向へのチェックをすることもありませんでした。(これは、"プリント"/トレースによって) (買いで入るか、売りで入るかをチェックするはずです。) 付帯するロジック: 2本の連続したバーをチェックする。バー1が高値と安値の両方を持っている場合、Progは次のバーが上昇すると考える。 (対称的に下降を意味する) それに応じて利食い・損切りを設定。 このプログでは、"if "ステートメントがネストされている場合、動作しませんでした.... 見ていただいてありがとうございました。 //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- bool TrendUp1; double TakeProfitUp; double EE = .00500; bool OrdTot_OK;double lot;double slip; double SL_Trailing_Up;bool High2Up;bool Low2Up; int ticketup;int ticketdown;bool DownAndBig; bool UpAndBig; bool TrendDown; double SL_Trailing_Down;double TakeProfitDown; bool High2down; bool Low2down; int ABC = OrdersTotal(); double Size1 = .00630;bool BigUp; double A = High[1];double B= Low[2];//41 double C= High[2]; double D= Low[1];bool BigDown; //ダウンオーダー開始 if (ABC == 0)// no orders out is true. OrdTot_OK = trueです。 if (ABC == 0)// no orders out is true. Print ("on down order sequence, no orders were out"); if ((C-D) > Size1)//high of 2 less of low of 1 > .0063 BigDown = true。 if ((C-D) > Size1)//HIGH OF 2 less LOW OF 1 > .0063 Print ("on down order sequence, found a big breakout down"); if (高値[1]<高値[2]) High2down=trueとする。 if (高値[1]<高値[2]) Print ("on down order sequence, the consecutive bars have decreasing highs"); if(Low[1]<Low[2])の場合 Low2down=true。 if(安値[1]<安値[2]) Print ("on down order sequence, the consecutive bars have decreasing lows"); if (ハイ2ダウン && ロー2ダウン) TrendDown=true。 if (ハイ2ダウン && ロー2ダウン) Print ("on down order sequence, TrendDown flag is set"); if (TrendDown) SL_Trailing_Down = High[1]; if (TrendDown) Print ("on down order sequence, did set the stop_loss"); if (TrendDown) TakeProfitDown = ビッド - (.005); if (トレンドダウン) Print ("下降中の注文シーケンスで、テイクプロフィットを得ました", TakeProfitDown); if (TrendDown && BigDown) DownAndBig = true。 if (DownAndBig && OrdTot_OK) ticketdown= OrderSend(Symbol(),OP_SELL,lot,Bid,slip,SL_Trailing_Down,TakeProfitDown,Blue).if (Down&Big & OrdTot_OK); if (DownAndBig && OrdTot_OK) Print ("on down order sequence, tried to enter a ticket", ticketdown); if (チケットダウン < 0) Print("OrderSend_Downはエラー#で失敗しました",GetLastError()).Print("OrderSend_Downはエラー#で失敗しました。 return(0); //----------------------------------------------down order done //---------------------------------------------------up order start if (ABC == 0) OrdTot_OK = trueです。 if (ABC == 0) Print ("on the going up sequence, no orders were out"); if ((A - B) > Size1) BigUp = true。 if ((A - B) > Size1) Print ("on the going up sequence, the size test for the two bars was ok"); if (高値[1] > 高値[2]) High2Up = true;//44 if (高値[1] > 高値[2]) Print ("on the going up sequence, the test for increasing highs was ok"); if(ロー[1] > ロー[2]) Low2Up=trueとする。 if(安値[1] > 安値[2]) Print ("on the going up sequence, the test for increasing lows was ok"); if (High2Up && Low2Up) TrendUp1=trueとする。 if (High2Up && Low2Up) Print ("on the going up sequence, did set the flag for going up"); if (TrendUp1) SL_Trailing_Up = Low[1] ; if (TrendUp1) Print ("on the going up sequence, established the stoploss"); if (TrendUp1) TakeProfitUp = Ask + (.005); if (TrendUp1) Print ("上昇シーケンスで、利益確定", TakeProfitUp); if (TrendUp1 && BigUp) UpAndBig = true; if ( UpAndBig && OrdTot_OK) ticketup = OrderSend(Symbol(), OP_BUY,lot, Ask,slip, SL_Trailing_Up,TakeProfitUp,Red); if (UpAndBig && OrdTot_OK) Print ("on the going up sequence, tried to send in an order", ticketup); if (チケットアップ < 0) Print("OrderSend_Upはエラー#で失敗しました",GetLastError()).Print("OrderSend_Upはエラー#で失敗しました。 return(0); //-------------------------------------------------up order done //---- return(0);//この行はよくわかりません。 //+------------------------------------------------------------------+ //---- return(0)です。 } //+------------ アスク! How to code? Ask! smsfm 2009.09.24 17:57 #2057 取引前/取引後の最小バー数 こんにちは。 こんにちは、私はMT4初心者です。どなたか、EAで新しいポジションを開くか、前のポジションを決済するために最低 "x "バーを必要とする制限を設ける方法を教えていただけませんか? (スリープコマンドを使用せずに) よろしくお願いします。 happyfx 2009.09.25 10:30 #2058 mqlコーディングヘルプ if (iMA(NULL, 0, 24, 0, MODE_LWMA, PRICE_WEIGHTED, 1) > iMA(NULL, 0, 120, 1, MODE_LWMA, PRICE_WEIGHTED, 1)) gi_268 = 2; --------------------------------------------------------------- それは何を意味するのでしょうか? 2 LWMAを使用 ? LWMA期間=24シフト=0価格加重(hcll4)でクロスオーバーLWMA期間120シフト=1価格加重(hcll4)その後、購入または売却? ljubas 2009.09.26 10:29 #2059 クローズポジションの問題 こんにちは。 私は新しいEAを使い始めたばかりで、オープニングポジションはOKです、私はtpとslを設定しました。EAは1つずつポジションを開き、閉じるのですが、1つ以上の注文があることはありません。しかし、いくつかのインジケータがslやtpのリミット前に警告した場合、私はポジションを閉じたいと思います。 このようにすると for (int i=1; i<=OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, 2)) { if (OrderSymbol()==Symbol()) { Ans=OrderClose(OrderTicket(),alLots,Bid,2);// Order closing } } }[/CODE] Nothing happened. Doesn't find any opened positions and I know there is 1. If I try something like this: for (int i=1; i<=OrdersTotal(); i++) { CloseOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_LOTS),Bid,3); } Compiler report error message that VAL_TICKER and VAL_LOTS are not defined and in examples I found they are nowhere declared. If I try direcly by number to close: [CODE] Ans=OrderClose(0,alLots,Bid,2);// Order closing 4107または4105のエラーメッセージが表示され、ティッカーが無効であることがわかります。 どなたかこれと添付の私のEAをチェックして助けて いただけませんか? どうもありがとうございました。 ファイル: rsiproba.mq4 6 kb How to code? Closing A Large Number I will write an username1 2009.09.26 18:30 #2060 iHighest iLowest 明解な説明 3つのバーを想定しています。バー[2]、バー[1]、バー[0](現在)。 以下の「stop_low()」関数は、バー [2] とバー [3] の最安値を見つけるのに正しいですか? double stop_low = iLowest(Symbol(),0,1,2,1); ------------------------------------------------------------ 参考にしてください。 int iLowest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0) タイプに応じて、指定された期間数での最小値のシフトを返します。 パラメータは以下の通りです。 symbol - シンボルを表すデータ。NULLは、現在のシンボルを意味します。 timeframe - 時間枠。Timeframe列挙値のいずれかを指定します。0は、現在のチャートタイムフレームを 意味します。 type - Series array identifier(シリーズ配列識別子).Series array identifier列挙の値のいずれかを指定します。 count - 計算が実行される期間の数(開始バーから終了バーまでの方向)。 start - データを取得するバーを示す、現在のバーからの相対的なシフト。 サンプル // 範囲内の連続する10本のバーのうち、最も低い値を計算する。 // 現在のチャートの 10 番目から 19 番目までのインデックスを含む範囲で、連続する 10 本のバーの最低値を計算します。 double val=Low; iHighest iLowest Clarification How to code? Help - a simple 1...199200201202203204205206207208209210211212213...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
外部*.setファイルの使用
私は何度も試してみましたが、この問題を理解することができません。
私はEAをプログラムして、プログラムされた設定を使用するか、または外部*.setファイルを使用するようにしたいのです。
そこで、もし
extern bool UseExternSet = true;
とすると、プログラムされた設定ではなく、外部のセットファイルの設定を使用することになります。
それができることを知っているが、ここで単純に失われた。
どのようなeaの例ではありません
バーナード
コンパイラの問題かコードの問題か?
extern int ma1method=1;
extern int ma1tf=0;
extern int ma2period=5;
extern int ma2method=1;
extern int ma2tf=10080;
extern double lots=1;
int init(){}
int deinit(){}
double CMA (int tf,int period, int shift, int method)
{
double MA=iMA(NULL,tf,period,0,method,0,shift)
return(MA)
}
int start()
{
int BarsCount=0;
if (Bars> BarsCount)
{
BarsCount=Bars;
double ma1.1=CMA(ma1tf,ma1period,1,ma1method);
double ma1.2=CMA(ma1tf,ma1period,2,ma1method);
double ma2.1=CMA(ma2tf,ma2period,1,ma2method);
double ma2.2=CMA(ma2tf,ma2period,2,ma2method);
bool ma1upsignal =ma1.2<ma1.1;
bool ma1downsignal =ma1.2>ma1.1;
bool ma2upsignal =ma2.2<ma2.1;
bool ma2downsignal =ma2.2>ma2.1;
if (ma1upsignal&&ma2upsignal)
{
OrderSend(Symbol(),OP_BUY,lots,Ask,3,NULL,NULL,NULL,NULL,0,Green);
}
if (ma1downsignal&&ma2downsignal)
{
OrderSend(Symbol(),OP_SELL,lots,Bid,3,NULL,NULL,NULL,NULL,0,Green);
}
if ((ma1upsignal&&ma2downsignal)||(ma1downsignal&&ma2upsignal))
{
int total=OrdersTotal(); //Script to close all open orders.
for(int i=total-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
switch(type)
{
//Close opened long positions
case OP_BUY : OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
break;
//Close opened short positions
case OP_SELL : OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
}
}
}
}
これは、私が取り組んでいるコードの一部です。コンパイラは、「変数BarsCountが定義されていません」と言います。どうすればいいのでしょうか?私が見る限り、この変数は初期化され、値も与えられています。
これはコンパイラの問題なのでしょうか、それともコードの問題なのでしょうか?
[CODE] (コード)
double CMA (int tf,int period, int shift, int method)
{
double MA=iMA(NULL,tf,period,0,method,0,shift)。
return(MA);
}
[CODE]です。
double CMA (int tf,int period, int shift, int method)
{
double MA=iMA(NULL,tf,period,0,method,0,shift)。
return(MA);
}Michelです。
ありがとうございます。これで問題解決です :-)
連続したバーをカウントする
連続した売買バーをカウントする方法をご存知の方はいらっしゃいますか? 私はチャート(チェックするバーの 数を入力します)1連続した売りバー、32連続した売りバー、3連続した売りバー、4連続した売りバー(同じw /買い)などがある何回をカウントしたいのですが。
ループさせる必要があることは分かっているのですが、その方法がよく分かりません。
結果はComment()の中に入れることができます。
ありがとうございます。
なぜ私のプログラムは動作しないのですか?
簡単なプログレを書きました。
一度に一つの注文を入れ、利食いか損切りで終了することになっている。
これはGBPUSDのM30にセットアップされています。
私は:プログでsed定数のいくつかは、 "目測 "推定によって見つけられます。これはプログに大きな影響を与えないはずです...また、異なる定数では動作しません。(少なくとも、Strategy Testerで テストする場合、fastかmediumに設定します。"tick by tick "ではありません。(遅すぎる...)。
とにかく、このプログをテストしたところ、注文を入れることも、「上」方向へのチェックをすることもありませんでした。(これは、"プリント"/トレースによって)
(買いで入るか、売りで入るかをチェックするはずです。)
付帯するロジック: 2本の連続したバーをチェックする。バー1が高値と安値の両方を持っている場合、Progは次のバーが上昇すると考える。
(対称的に下降を意味する)
それに応じて利食い・損切りを設定。
このプログでは、"if "ステートメントがネストされている場合、動作しませんでした....
見ていただいてありがとうございました。
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
bool TrendUp1; double TakeProfitUp; double EE = .00500;
bool OrdTot_OK;double lot;double slip;
double SL_Trailing_Up;bool High2Up;bool Low2Up;
int ticketup;int ticketdown;bool DownAndBig; bool UpAndBig;
bool TrendDown; double SL_Trailing_Down;double TakeProfitDown;
bool High2down; bool Low2down;
int ABC = OrdersTotal();
double Size1 = .00630;bool BigUp; double A = High[1];double B= Low[2];//41
double C= High[2]; double D= Low[1];bool BigDown;
//ダウンオーダー開始
if (ABC == 0)// no orders out is true.
OrdTot_OK = trueです。
if (ABC == 0)// no orders out is true.
Print ("on down order sequence, no orders were out");
if ((C-D) > Size1)//high of 2 less of low of 1 > .0063
BigDown = true。
if ((C-D) > Size1)//HIGH OF 2 less LOW OF 1 > .0063
Print ("on down order sequence, found a big breakout down");
if (高値[1]<高値[2])
High2down=trueとする。
if (高値[1]<高値[2])
Print ("on down order sequence, the consecutive bars have decreasing highs");
if(Low[1]<Low[2])の場合
Low2down=true。
if(安値[1]<安値[2])
Print ("on down order sequence, the consecutive bars have decreasing lows");
if (ハイ2ダウン && ロー2ダウン)
TrendDown=true。
if (ハイ2ダウン && ロー2ダウン)
Print ("on down order sequence, TrendDown flag is set");
if (TrendDown)
SL_Trailing_Down = High[1];
if (TrendDown)
Print ("on down order sequence, did set the stop_loss");
if (TrendDown)
TakeProfitDown = ビッド - (.005);
if (トレンドダウン)
Print ("下降中の注文シーケンスで、テイクプロフィットを得ました", TakeProfitDown);
if (TrendDown && BigDown)
DownAndBig = true。
if (DownAndBig && OrdTot_OK)
ticketdown= OrderSend(Symbol(),OP_SELL,lot,Bid,slip,SL_Trailing_Down,TakeProfitDown,Blue).if (Down&Big & OrdTot_OK);
if (DownAndBig && OrdTot_OK)
Print ("on down order sequence, tried to enter a ticket", ticketdown);
if (チケットダウン < 0)
Print("OrderSend_Downはエラー#で失敗しました",GetLastError()).Print("OrderSend_Downはエラー#で失敗しました。
return(0);
//----------------------------------------------down order done
//---------------------------------------------------up order start
if (ABC == 0)
OrdTot_OK = trueです。
if (ABC == 0)
Print ("on the going up sequence, no orders were out");
if ((A - B) > Size1)
BigUp = true。
if ((A - B) > Size1)
Print ("on the going up sequence, the size test for the two bars was ok");
if (高値[1] > 高値[2])
High2Up = true;//44
if (高値[1] > 高値[2])
Print ("on the going up sequence, the test for increasing highs was ok");
if(ロー[1] > ロー[2])
Low2Up=trueとする。
if(安値[1] > 安値[2])
Print ("on the going up sequence, the test for increasing lows was ok");
if (High2Up && Low2Up)
TrendUp1=trueとする。
if (High2Up && Low2Up)
Print ("on the going up sequence, did set the flag for going up");
if (TrendUp1)
SL_Trailing_Up = Low[1] ;
if (TrendUp1)
Print ("on the going up sequence, established the stoploss");
if (TrendUp1)
TakeProfitUp = Ask + (.005);
if (TrendUp1)
Print ("上昇シーケンスで、利益確定", TakeProfitUp);
if (TrendUp1 && BigUp)
UpAndBig = true;
if ( UpAndBig && OrdTot_OK)
ticketup = OrderSend(Symbol(), OP_BUY,lot, Ask,slip, SL_Trailing_Up,TakeProfitUp,Red);
if (UpAndBig && OrdTot_OK)
Print ("on the going up sequence, tried to send in an order", ticketup);
if (チケットアップ < 0)
Print("OrderSend_Upはエラー#で失敗しました",GetLastError()).Print("OrderSend_Upはエラー#で失敗しました。
return(0);
//-------------------------------------------------up order done
//----
return(0);//この行はよくわかりません。
//+------------------------------------------------------------------+
//----
return(0)です。
}
//+------------
取引前/取引後の最小バー数
こんにちは。
こんにちは、私はMT4初心者です。どなたか、EAで新しいポジションを開くか、前のポジションを決済するために最低 "x "バーを必要とする制限を設ける方法を教えていただけませんか?
(スリープコマンドを使用せずに)
よろしくお願いします。
mqlコーディングヘルプ
if (iMA(NULL, 0, 24, 0, MODE_LWMA, PRICE_WEIGHTED, 1) > iMA(NULL, 0, 120, 1, MODE_LWMA, PRICE_WEIGHTED, 1)) gi_268 = 2;
---------------------------------------------------------------
それは何を意味するのでしょうか?
2 LWMAを使用 ?
LWMA期間=24シフト=0価格加重(hcll4)でクロスオーバーLWMA期間120シフト=1価格加重(hcll4)その後、購入または売却?
クローズポジションの問題
こんにちは。
私は新しいEAを使い始めたばかりで、オープニングポジションはOKです、私はtpとslを設定しました。EAは1つずつポジションを開き、閉じるのですが、1つ以上の注文があることはありません。しかし、いくつかのインジケータがslやtpのリミット前に警告した場合、私はポジションを閉じたいと思います。
このようにすると
for (int i=1; i<=OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, 2)) {
if (OrderSymbol()==Symbol()) {
Ans=OrderClose(OrderTicket(),alLots,Bid,2);// Order closing
}
}
}[/CODE]
Nothing happened. Doesn't find any opened positions and I know there is 1.
If I try something like this:
for (int i=1; i<=OrdersTotal(); i++) {
CloseOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_LOTS),Bid,3);
}Compiler report error message that VAL_TICKER and VAL_LOTS are not defined and in examples I found they are nowhere declared.
If I try direcly by number to close:
[CODE]
Ans=OrderClose(0,alLots,Bid,2);// Order closing4107または4105のエラーメッセージが表示され、ティッカーが無効であることがわかります。
どなたかこれと添付の私のEAをチェックして助けて いただけませんか?
どうもありがとうございました。
iHighest iLowest 明解な説明
3つのバーを想定しています。バー[2]、バー[1]、バー[0](現在)。
以下の「stop_low()」関数は、バー [2] とバー [3] の最安値を見つけるのに正しいですか?
double stop_low = iLowest(Symbol(),0,1,2,1);
------------------------------------------------------------
参考にしてください。
int iLowest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)
タイプに応じて、指定された期間数での最小値のシフトを返します。
パラメータは以下の通りです。
symbol - シンボルを表すデータ。NULLは、現在のシンボルを意味します。
timeframe - 時間枠。Timeframe列挙値のいずれかを指定します。0は、現在のチャートタイムフレームを 意味します。
type - Series array identifier(シリーズ配列識別子).Series array identifier列挙の値のいずれかを指定します。
count - 計算が実行される期間の数(開始バーから終了バーまでの方向)。
start - データを取得するバーを示す、現在のバーからの相対的なシフト。
サンプル
// 範囲内の連続する10本のバーのうち、最も低い値を計算する。
// 現在のチャートの 10 番目から 19 番目までのインデックスを含む範囲で、連続する 10 本のバーの最低値を計算します。
double val=Low;