[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 308 1...301302303304305306307308309310311312313314315...432 新しいコメント 削除済み 2013.04.23 04:36 #3071 mt4を再起動せずに、先ほど編集したスクリプトを実行するにはどうしたらいいですか? 削除済み 2013.04.23 04:59 #3072 やっていますが、うまくいきません。 コードにエラーがたくさん出ています((. 削除済み 2013.04.23 05:42 #3073 何か教えてください。) 削除済み 2013.04.23 05:49 #3074 役に立つかもしれない。これで問題なく使えます!メタエディターで、F5キーを押してコンパイルします。重要:メタエディタはターミナルと同じフォルダーから実行する必要があります。 削除済み 2013.04.23 05:56 #3075 アレックス、ここにいるのか?私はmql4初心者です。 私はこのコードを理解しようとしています。#property indicator_chart_window#property indicator_buffers 2 extern int TimeFrame=0;//0 ならば現在のもの extern int Distanse=0;// フラクタルからの線の距離(ポイント単位 extern string FrApNam="Ap";// フラクタル上方に対応する線の名前。 extern string FrDnNam="Dn";// フラクタル下向きの線に応じた名前。 extern color ClAp=Blue;//カラーラインはFractalの上方に対応する。 extern color ClDn=Red;//Fractal Downに従った線の色。 extern bool comment=true;// コメントの許可//-----------------------------------------------------------------------------+ double FrPrise,znach1,znach2; double FrApPrise=0,FrDnPrise=0。 double ind_buffer1[]; double ind_buffer2[];//+----------------------------------------------------------------------------+ void init(){if(TimeFrame=0){TimeFrame=Period()}とする。 SetIndexBuffer(0,ind_buffer1);//Buffer SetIndexBuffer(1,ind_buffer2)を設定。 戻り値;} void deinit(){。 戻り値;} //+----------------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int制限。 double tmp; int i, j, k; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars。//-----------------------------------------------------------------------------+ LineAp()です。 LineDn()です。 double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//Normalize double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5); int diap=MathRound((FrApPrise-FrDnPrise)/Point); ind_buffer1[0]=FAP; ind_buffer2[1]=FDP; コメント("TimeFrame="+TimeFrame+") "\nApPrise =",FAP, "\nDnPrise =",FDP, "nFractalチャンネル=" ,diap+"Point")。 return(0)です。 }//-----------------------------------------------------------------------------+// 名前で水平線を検索し、価格が変わったら再描画する|? //-----------------------------------------------------------------------------+ void LineDn(){。 FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(,MODE_DIGITS)))。 //Comment(FrPrise); if(ObjectFind(FrDnNam)==0){。 if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}} とする。 FrDnPrise=FrPriseです。 ObjectDelete(FrDnNam)です。 SetHLine(ClDn,FrDnNam,FrDnPrise,0,1)を設定します。 WindowRedraw()。 戻り値;} //-----------------------------------------------------------------------------+// 名前で水平線を検索し、価格が変化したら再描画する|? //-----------------------------------------------------------------------------+ void LineAp(){。 FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(,MODE_DIGITS)))。 if(ObjectFind(FrApNam)==0){。 if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}} 。 FrApPrise=フラープライズ。 ObjectDelete(FrApNam)です。 SetHLine(ClAp,FrApNam,FrApPrise,0,1)を設定。 WindowRedraw()。 戻り値;}//-----------------------------------------------------------------------------+ //| 説明 : 最も近いフラクタル素片を検索する。価格水準を返します。//+----------------------------------------------------------------------------+//| パラメータ: |//| sy - 測定器名 ("" または NULL - 現在のシンボル) |.//| tf - タイムフレーム( 0 - 現在のTF)|。//| モード - フラクタルタイプ (MODE_LOWER|MODE_UPPER) |...//+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {... if (sy==" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY"<0)) d=4; else d=2; for (s=2; s<100; s++) {. f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)) } Print("FindNearFractal(): Fractal not found"); return(0)です。}//+----------------------------------------------------------------------------+//| 説明:オブジェクトOBJ_HLINEを水平線に設定する。//+----------------------------------------------------------------------------+//| パラメータ: |//| cl - 線の色 |.//| nm - 名前 ("" - 現在のバーの開始時間) |.//| p1 - 価格水準(0 - 入札)//| st - ラインスタイル (0 - 単純なライン) |.//| wd - 線幅 (0 - デフォルト) |.//+----------------------------------------------------------------------------+ void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {. if (nm=="") nm=DoubleToStr(Time[0], 0); if (p1<=0) p1=Bid; if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0;) ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_COLOR , cl)です。 ObjectSet(nm, OBJPROP_STYLE , st)です。 ObjectSet(nm, OBJPROP_WIDTH , wd)です。}このインディケータは、М1、М5のタイムフレームで上値と下値を通過させるExpert Advisorを作成する必要があります。 [ARCHIVE]Any rookie question, so [ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you オジャラEA Boris 2013.04.23 06:35 #3076 palomnik: アレックス、ここにいるのか?私はmql4初心者です。 私はこのコードを理解しようとしています。#property indicator_chart_window #property indicator_buffers 2 extern int TimeFrame=0;//Если=0, то текуший extern int Distanse=0;//Дистанция линии от фрактала в пунктах extern string FrApNam="Ap";//Имя линии соотв.Фракталу вверх extern string FrDnNam="Dn";//Имя линии соотв.Фракталу вниз extern color ClAp=Blue;//Цвет линии соотв.Фракталу вверх extern color ClDn=Red;//Цвет линии соотв.Фракталу вниз extern bool comment=true;//Разрещение на комментарий //-----------------------------------------------------------------------------+ double FrPrise,znach1,znach2; double FrApPrise=0,FrDnPrise=0; double ind_buffer1[]; double ind_buffer2[]; //+----------------------------------------------------------------------------+ void init() {if(TimeFrame==0){TimeFrame=Period();} SetIndexBuffer(0,ind_buffer1);//КОРОБКА SetIndexBuffer(1,ind_buffer2); return;} void deinit(){ return;} //+----------------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit; double tmp; int i, j,k; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //-----------------------------------------------------------------------------+ LineAp(); LineDn(); double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//ЗНАЧЕНИЕ double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5); int diap=MathRound((FrApPrise-FrDnPrise)/Point); ind_buffer1[0]=FAP; ind_buffer2[1]=FDP; Comment("TimeFrame="+TimeFrame+ "\nApPrise =",FAP, "\nDnPrise =",FDP, "\nFractal Channel =" ,diap+"Point"); return(0); } //-----------------------------------------------------------------------------+ // Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+ void LineDn(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise-Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS)); //Comment(FrPrise); if(ObjectFind(FrDnNam)==0){ if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}} FrDnPrise=FrPrise; ObjectDelete(FrDnNam); SetHLine(ClDn,FrDnNam,FrDnPrise,0,1); WindowRedraw(); return;} //-----------------------------------------------------------------------------+ // Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+ void LineAp(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS)); if(ObjectFind(FrApNam)==0){ if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}} FrApPrise=FrPrise; ObjectDelete(FrApNam); SetHLine(ClAp,FrApNam,FrApPrise,0,1); WindowRedraw(); return;} //-----------------------------------------------------------------------------+ //| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| mode - тип фрактала (MODE_LOWER|MODE_UPPER) | //+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)); } Print("FindNearFractal(): Фрактал не найден"); return(0); } //+----------------------------------------------------------------------------+ //| Описание : Установка объекта OBJ_HLINE горизонтальная линия | //+----------------------------------------------------------------------------+ //| Параметры: | //| cl - цвет линии | //| nm - наименование ("" - время открытия текущего бара) | //| p1 - ценовой уровень (0 - Bid) | //| st - стиль линии (0 - простая линия) | //| wd - ширина линии (0 - по умолчанию) | //+----------------------------------------------------------------------------+ void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) { if (nm=="") nm=DoubleToStr(Time[0], 0); if (p1<=0) p1=Bid; if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_COLOR , cl); ObjectSet(nm, OBJPROP_STYLE , st); ObjectSet(nm, OBJPROP_WIDTH , wd); } Надо к данному индикатору написать советник.Передающий верхнюю и нижнюю цены.по М1 и М5 таймфреймам. srcが 何のためにあるのかわからない?落書きを消せ! david2 2013.04.23 07:07 #3077 この機能をEAに実装するにはどうしたらいいですか?TPまたはSLがいずれかのベイ・オーダーでトリガーされた場合、すべてのベイ・オーダーをクローズする必要があります。 削除済み 2013.04.23 07:13 #3078 David これは1つの機能ではなく、小さなExpertAdvisorで、簡単に言うと、サンプルでいくつの注文があり、いくつの注文がクローズされたかを比較するものです。 削除済み 2013.04.23 09:50 #3079 聞いたことがない、理解できない。実際に問題を説明したのですが、何だか沈黙してしまいました((。https://forum.mql4.com/ru/52892/page308 palomnik 2013.04.23 09:56 Vadim Zhunko 2013.04.23 10:58 #3080 palomnik: 旦那、誰かインジケータからEAに値を渡す方法を知ってるかい?助けてほしい、自分でもよくわからない、一瞬で終わってしまう。https://forum.mql4.com/ru/52892/page308 palomnik 2013.04.23 09:56 いろいろなやり方がありますね。1.グローバル変数 を通じて2.ファイル 経由。3.iCustom()経由。4.グローバルグラフィック変数を通じて5.マッピング ある端末から別の端末にデータを転送することができます。または、1つのターミナルで、MT4のグローバル変数の制限なしに、あるウィンドウから別のウィンドウにデータを転送することができます。 1...301302303304305306307308309310311312313314315...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
役に立つかもしれない。これで問題なく使えます!
メタエディターで、F5キーを押してコンパイルします。
重要:メタエディタはターミナルと同じフォルダーから実行する必要があります。
アレックス、ここにいるのか?私はmql4初心者です。 私はこのコードを理解しようとしています。
#property indicator_chart_window
#property indicator_buffers 2
extern int TimeFrame=0;//0 ならば現在のもの
extern int Distanse=0;// フラクタルからの線の距離(ポイント単位
extern string FrApNam="Ap";// フラクタル上方に対応する線の名前。
extern string FrDnNam="Dn";// フラクタル下向きの線に応じた名前。
extern color ClAp=Blue;//カラーラインはFractalの上方に対応する。
extern color ClDn=Red;//Fractal Downに従った線の色。
extern bool comment=true;// コメントの許可
//-----------------------------------------------------------------------------+
double FrPrise,znach1,znach2;
double FrApPrise=0,FrDnPrise=0。
double ind_buffer1[];
double ind_buffer2[];
//+----------------------------------------------------------------------------+
void init()
{if(TimeFrame=0){TimeFrame=Period()}とする。
SetIndexBuffer(0,ind_buffer1);//Buffer
SetIndexBuffer(1,ind_buffer2)を設定。
戻り値;}
void deinit(){。
戻り値;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int制限。
double tmp;
int i, j, k;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars。
//-----------------------------------------------------------------------------+
LineAp()です。
LineDn()です。
double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//Normalize
double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5);
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
ind_buffer1[0]=FAP;
ind_buffer2[1]=FDP;
コメント("TimeFrame="+TimeFrame+")
"\nApPrise =",FAP,
"\nDnPrise =",FDP,
"nFractalチャンネル="
,diap+"Point")。
return(0)です。
}
//-----------------------------------------------------------------------------+
// 名前で水平線を検索し、価格が変わったら再描画する|?
//-----------------------------------------------------------------------------+
void LineDn(){。
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(,MODE_DIGITS)))。
//Comment(FrPrise);
if(ObjectFind(FrDnNam)==0){。
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}} とする。
FrDnPrise=FrPriseです。
ObjectDelete(FrDnNam)です。
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1)を設定します。
WindowRedraw()。
戻り値;}
//-----------------------------------------------------------------------------+
// 名前で水平線を検索し、価格が変化したら再描画する|?
//-----------------------------------------------------------------------------+
void LineAp(){。
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(,MODE_DIGITS)))。
if(ObjectFind(FrApNam)==0){。
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}} 。
FrApPrise=フラープライズ。
ObjectDelete(FrApNam)です。
SetHLine(ClAp,FrApNam,FrApPrise,0,1)を設定。
WindowRedraw()。
戻り値;}
//-----------------------------------------------------------------------------+
//| 説明 : 最も近いフラクタル素片を検索する。価格水準を返します。
//+----------------------------------------------------------------------------+
//| パラメータ: |
//| sy - 測定器名 ("" または NULL - 現在のシンボル) |.
//| tf - タイムフレーム( 0 - 現在のTF)|。
//| モード - フラクタルタイプ (MODE_LOWER|MODE_UPPER) |...
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {...
if (sy==" || sy=="0") sy=Symbol();
double f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY"<0)) d=4; else d=2;
for (s=2; s<100; s++) {.
f=iFractals(sy, tf, mode, s);
if (f!=0) return(NormalizeDouble(f, d))
}
Print("FindNearFractal(): Fractal not found");
return(0)です。
}
//+----------------------------------------------------------------------------+
//| 説明:オブジェクトOBJ_HLINEを水平線に設定する。
//+----------------------------------------------------------------------------+
//| パラメータ: |
//| cl - 線の色 |.
//| nm - 名前 ("" - 現在のバーの開始時間) |.
//| p1 - 価格水準(0 - 入札)
//| st - ラインスタイル (0 - 単純なライン) |.
//| wd - 線幅 (0 - デフォルト) |.
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {.
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (p1<=0) p1=Bid;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0;)
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl)です。
ObjectSet(nm, OBJPROP_STYLE , st)です。
ObjectSet(nm, OBJPROP_WIDTH , wd)です。
}
このインディケータは、М1、М5のタイムフレームで上値と下値を通過させるExpert Advisorを作成する必要があります。
アレックス、ここにいるのか?私はmql4初心者です。 私はこのコードを理解しようとしています。
旦那、誰かインジケータからEAに値を渡す方法を知ってるかい?助けてほしい、自分でもよくわからない、一瞬で終わってしまう。https://forum.mql4.com/ru/52892/page308 palomnik 2013.04.23 09:56
1.グローバル変数 を通じて
2.ファイル 経由。
3.iCustom()経由。
4.グローバルグラフィック変数を通じて
5.マッピング ある端末から別の端末にデータを転送することができます。または、1つのターミナルで、MT4のグローバル変数の制限なしに、あるウィンドウから別のウィンドウにデータを転送することができます。