//-------------------------------------------------------------------- switch (Period()) // 検査するバーの本数を設定する。 { case 1: History = 30; break; // 期間1分 case 5: History = 24; break; // 5分経過。 case 15: History = 24; break; // 15分経過。 case 30: History = 24; break; // 期間30分 case 60: History = 24; break; // 1時間の期間 case 240: History = 30; break; // Period 4-hour case 1440: History = 22; break; // 日足期間 default: Alert("Select period M1 to D1."); break; //hourly period } Set_SL[History*Depth]=1.0*Level*Pointとする。 Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);/Specialy display it to see: it shows (let's say) 0,0001 //--------------------------------------------------------------------//---- return(0)です。 } //+------------------------------------------------------------------+ //| カスタムインジケーター初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| カスタムインジケータ反復関数 //+------------------------------------------------------------------+ int start() { Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//そしてこれは既に2147483647を表示しています。 return(0)です。 }
ここでは、インジケータに定義されているものをすべて紹介します。
#property indicator_buffers 8 // バッファの数
SetIndexBuffer(1,Set_SL); // 配列の代入
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // ラインスタイル
インジケータバッファのSIZEを定義する必要はないのか!?
こんばんは。アドバイスお願いします - 私のExpert Advisorでは、利益のある取引の成功したクローズの後、ポジションは前の取引と同じ方向に再開されます(もちろん、それは将来的に利益を生まないようになります)。このような誤った取引の再開を禁止するにはどうしたらよいですか?
この方法でトレードが開かれる条件を削除し、あなたが望むように条件を挿入してください。
そして、最初に配列の大きさを定義しておくとよいでしょう。
ここでは、インジケータに定義されている内容をすべて紹介します。
#property indicator_buffers 8 // バッファの数
SetIndexBuffer(1,Set_SL); // 配列の代入
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // ラインスタイル
インジケータバッファのSIZEを定義する必要はないのか!?
インジケータバッファのSIZEを定義する必要はないのか!?
必要ありません。バッファダブルSet_SL[]を意味します。
必要ありません。バッファダブルSet_SL[]を意味します。
そこで、やはりここに2009.03.22 16:05に投稿した質問(前のページ)があります。そうそう、ここで追加ですが、週末にまとめて、つまりTICKSはありませんでした。
そこで、やはり疑問があります。
>> コードを全部出して、それを理解できるかどうか見てみよう。
こんばんは。教えてください - 私のExpert Advisorでは、利益のある取引の成功したクローズの後、前の取引と同じ方向のポジションの再開があります(もちろん、それは将来的に利益が出ないようになります)。このような誤った取引の再開を禁止するにはどうしたらよいですか?
最後に決済された取引を確認すれば十分です。しかし、まだ歴史がないときのために用意する必要があります。
指標に定義されているのはこれだけです。
#property indicator_buffers 8 // バッファの数
SetIndexBuffer(1,Set_SL); // 配列の代入
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // ラインスタイル
インジケータバッファのSIZEを定義する必要はないのか!?
これは元のコードにはなかったものです。あるとすれば、それは別の理由です。コード全体に目を通すべき
コード全体を投稿して、解決してみましょう。
コードには問題を構成するものだけを(簡略化して)残しました。いわば、インジケーターを置いて、問題を見ようというわけだ。
//+------------------------------------------------------------------+
//| iK_exp_stat_v30.mq4 |||||。
//| イワン・カツコ|
//| |
//+------------------------------------------------------------------+
#property copyright "Ivan Katsko"
#プロパティリンク ""
#property indicator_separate_window // 別ウィンドウで表示する。
#property indicator_buffers 8 // バッファの数
#property indicator_color1 DeepPink // 最初の行の色
#property indicator_color2 Purple // 2行目の線の色
#property indicator_color3 赤 // 3行目の色
#property indicator_color4 LawnGreen // 4本目の線の色
#property indicator_color5 Gold // 5本目の線の色
#property indicator_color6 青 // 6本目の線の色
#property indicator_color7 SteelBlue // 7本目の線の色
#property indicator_color8 Lime //8行目の色
外線
Depth=1; // 履歴の深さ: 1 - 履歴の値について。
extern double Level=10; // 最小レベルSL/TP
int History; // 計算された履歴のバーの本数
二重
Value_TP[]; // Array - テイクプロフィットの値
Av_Sum_TP[], // Array - 平均テイクプロフィット量
Sum_na_TP[], // Array - テイクプロフィットの増加量
Algoritm[], // Algorithm:1 - "今日は昨日のようだ"、-1 - "今日は昨日とは違う"
Direction[], // 注文の方向:1 - 買い、-1 - 売り
Sum_TP[], // 配列 - 適応的な利食い額の増加分
Set_TP[], // テイクプロフィットの設定
Set_SL[]; // ストップロスの設定
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Set_TP); // 配列の代入 Swap Up
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1); // ラインスタイル
SetIndexBuffer(1,Set_SL); // 配列のスイングを下に割り当てる
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // ラインスタイル
SetIndexBuffer(2,Sum_TP); // バッファに配列を割り当てる
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2); // ラインスタイル
SetIndexBuffer(3,Direction); // バッファに配列を代入する。
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4); // ラインスタイル
SetIndexBuffer(4,Algoritm); // バッファに配列を代入する。
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1); // ラインスタイル
SetIndexBuffer(5,Value_TP); // バッファに配列を代入する。
SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_SOLID,2); // ラインスタイル
SetIndexBuffer(6,Sum_na_TP); // バッファに配列を代入する。
SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,2); // ラインスタイル
SetIndexBuffer(7,Av_Sum_TP); // バッファに配列を代入する。
SetIndexStyle(7,DRAW_HISTOGRAM,STYLE_SOLID,2); // ラインスタイル
//--------------------------------------------------------------------
switch (Period()) // 検査するバーの本数を設定する。
{
case 1: History = 30; break; // 期間1分
case 5: History = 24; break; // 5分経過。
case 15: History = 24; break; // 15分経過。
case 30: History = 24; break; // 期間30分
case 60: History = 24; break; // 1時間の期間
case 240: History = 30; break; // Period 4-hour
case 1440: History = 22; break; // 日足期間
default: Alert("Select period M1 to D1."); break; //hourly period
}
Set_SL[History*Depth]=1.0*Level*Pointとする。
Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);/Specialy display it to see: it shows (let's say) 0,0001
//--------------------------------------------------------------------//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ反復関数
//+------------------------------------------------------------------+
int start()
{
Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//そしてこれは既に2147483647を表示しています。
return(0)です。
}