MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 807

 

皆さん、ごきげんよう。私はここでインジケータを回しています。私は、すべて正しいことをしたと思っています。でも、そのことが...すべてのローソク足でトレードを開始


Expert Advisor コード

// получение сигнала _________________________________________________________________________________________________________

int signal=-1;

if (time_bar!=Time[0]){。

time_bar=Time[0];

double stop_buy=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1)

double stop_sell=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1);

if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {。

double super_buy=iCustom(Symb,0, "xSuperTrend Tape MTF NRP",",", SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF, 0,1).SuperTrend_Periodは、SuperTrend_MultiplierとSuperTrend_TimeFrameの間にある。

if(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0;

if(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1;

}


インジケータコード


return(0)です。

}

//+------------------------------------------------------------------+

int start()

{

文字列 NameFigur;

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

if(counted_bars==0) limit-=1+2;


for(int i=1; i<limit; i++)

{

bool up=false,down=false。

double MA0 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

double MA1 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

double MA2 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1);

double MA3 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+2);


if(MA0>MA1 && MA1>MA2 && MA2>MA3) up=true。

else up=false とする。

if(MA0<MA1 && MA1<MA2 && MA2<MA3) down=true。

else down=false。

//---

NameFigur=";

if(Close[i]>Close[i+1] && Close[i]>Open[i+1])

{

if(down && Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Close[i]<Open[i+1] && Close[i]>Open[i])です。

{

NameFigur="BullHarami"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

if(Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Open[i]<Open[i+1] && Close[i]>Open[i+1])

{

NameFigur="BullCross"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

if(Close[i+1]<Open[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1])

{

NameFigur="Bullish Engulfing "です。

if(Close[i+1]<Open[i+1] && Close[i]>Open[i] && Open[i]<Close[i+1] && Close[i]>Close[i+1]+( (Open[i+1]-Close[i+1])/2) )

{

NameFigur="BullPierce"。

}

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

if(Close[i+2]<Open[i+2] && Open[i+1]<Close[i+2] && Close[i+1]<)Close[i+2] && Open[i]>Close[i+1] && Open[i]>Open[i+1] && Close[i]>=Close[i+2] の場合。)

{

NameFigur="モーニングスター"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur); Redraw(i+2,colorBulls,NameFigur)とする。

}

}

if(Open[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3 && Close[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3)

{

NameFigur="Hammer"。

if(up) {再描画(i,colorBulls,NameFigur);再描画(i+1,colorBulls,NameFigur);}。

if(down) {Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);}.

}

///// クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ///クマ

if(Close[i]<Close[i+1] && Close[i]<Open[i+1])

{

if(up& Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1] && Close[i]<Open[i])。

{

NameFigur="BearHarami"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

if(Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Open[i]>Open[i+1] && Close[i]<Open[i+1])

{

NameFigur="BearCross"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

if(Close[i+1]>Open[i+1] && Close[i]<Open[i] && Open[i]>Close[i+1] && Close[i]<Open[i+1])とする。

{

NameFigur="BearEngulf"。

if(Close[i+1]>Open[i+1] && Open[i]>Close[i+1] && Close[i]<Close[i+1]-((Close[i+1]-Open[i+1])/2))

{

NameFigur="DarkCloud"。

}

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}


if(Close[i+2]>Open[i+2] && Open[i+1]>Close[i+2] && Close[i+1]>)Close[i+2] && Open[i]<Close[i+1] && Open[i]<Open[i+1] && Close[i]<Close[i+2] の場合。)

{

NameFigur="EveningStar"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur); Redraw(i+2,colorBears,NameFigur)を実行。

}

if(up && High[i]-Open[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3 && High[i]-Close[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3)

{

NameFigur="Shooter"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

}

if(NameFigur!="")。

{

double DELTA=(MathMax(High[i],High[i+1])-MathMin(Low[i],Low[i+1]))/2;

if(Color==colorBears) {BufferDN[i]=MathMax(High[i],High[i+1]);P=BufferDN[i]+DELTA;} {BufferDN[i]=MathMax(High[i],High[i+1]);P=BufferDN[i]+DELTA

else {BufferUP[i]=MathMin(Low[i],Low[i+1]);P=BufferUP[i]-DELTA;} {BufferUP[i]=MathMin(Low[i],Low[i+1]);P=BufferUP[i]-DELTA

DrawTEXT(StringConcatenate(NameFigur," ",TimeToStr(Time[i],TIME_DATE|TIME_MINUTES)),NameFigur,Color,Time[i+1],P) を実行します。

}

}

if(Timei!=Time[0] && AlertON && i==0 && NameFigur!="") {Alert(Symbol()+" FiguresCandle ="+NameFigur);Timei=Time[0];} {Timei=Time[0];} {Alert(Symbol()+" FiguresCandle ="+NameFigur)

return(0)です。

}

//-------------------------------------------------------------------

void Redraw(int i,color col,文字列名)

{

カラー=col;

if(!DrawCandle) return;

name=StringConcatenate(name,",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS)));

ObjectCreate(name,OBJ_TREND,0,Time[i],High[i],Time[i],Low[i]);

ObjectSet(name,OBJPROP_COLOR,col)です。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)です。

ObjectSet(name,OBJPROP_BACK,false)を使用します。

ObjectSet(name,OBJPROP_RAY,false)です。

ObjectSet(name,OBJPROP_WIDTH,2)です。

name=StringConcatenate(name," o")とする。

ObjectCreate(name,OBJ_TREND,0,Time[i],Open[i],Time[i];

ObjectSet(name,OBJPROP_COLOR,col)です。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)です。

ObjectSet(name,OBJPROP_BACK,false)を使用します。

ObjectSet(name,OBJPROP_RAY,false)です。

ObjectSet(name,OBJPROP_WIDTH,2)です。

name=StringConcatenate(name," c")とする。

ObjectCreate(name,OBJ_TREND,0,Time[i],Close[i],Time[i]+Period() * 60,Close[i]).ObjectCreate(name,OBJ_TREND,0);

ObjectSet(name,OBJPROP_COLOR,col)です。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)です。

ObjectSet(name,OBJPROP_BACK,false)を使用します。

ObjectSet(name,OBJPROP_RAY,false)です。

ObjectSet(name,OBJPROP_WIDTH,2)です。

}

//-------------------------------------------------------------------

void DrawTEXT(string NT,string Name,color col,datetime t1,double p1)

{

ObjectDelete(NT)です。

ObjectCreate(NT,OBJ_TEXT,0,t1,p1,0,0);

ObjectSet(NT,OBJPROP_COLOR,col)です。

ObjectSetText(NT,Name,10,「Arial」);

}

//--------------------------------------------------------------------


 
Kos Mos:

皆さん、ごきげんよう。私はここでインジケータを回しています。私は、すべて正しいことをしたと思っています。でも、そのことが...全てのキャンドルにディールを開けました。



シート」は本当に印象的です :-) コードをもっと注意深く挿入し、明らかに不要なものをコピーしないようにします。

というテーマで、stop_buyとstop_sellの値を自分でプリントアウトしてみましょう。条件が明示的に発動されるため :

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy と stop_sell はEMPTY_VALUE の代わりに 0 で初期化されるかもしれません。

 
Maxim Kuznetsov:

もちろん、"シート "は非常に良いものです :-) もっと慎重にコードを挿入し、明らかに不要なものはコピーしないようにします。

題して、stop_buyとstop_sellを自分で印刷する。なぜなら、明らかに条件が発動されるからです。

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy と stop_sell はEMPTY_VALUE ではなく 0 で初期化されているのかもしれない。

すみませんでした )) - せっかく1ページ分も))


今すぐ試してみる)

 
Maxim Kuznetsov:

もちろん、"シート "は非常に良いものです :-) もっと慎重にコードを挿入し、明らかに不要なものはコピーしないようにします。

題して、stop_buyとstop_sellの値を自分でプリントアウトする。なぜなら、明らかに条件がトリガーされるからです。

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy と stop_sell はEMPTY_VALUE の代わりに 0 で初期化されるかもしれません。

それでもうまくいきません。ちなみに、売り注文は正しく開くのですが、買い注文では狂って10億円開いてしまうことに気づきました))

 
Kos Mos:

やはり同じようにはいきません。ちなみに、売りでの取引は正しく開いているのに、買いではおかしくなって10億円も開いてしまうことに気づきました))

まあ、少なくとも検索は可能なんだろう?コードを挿入...

なんということでしょう・・・。検索をオンにしなくても、フォーラムのエンジンがスキレットそのものを置く...
 
Alexey Viktorov:

せめて検索できるようになりませんか?コードを挿入...

残念だ...。検索をしなくても、フォーラムのエンジン自体がスキレットを入れてくれます。

フォーラムでのマナーについてあまり経験がないので、深くお詫び申し上げます)))



   // получение сигнала _________________________________________________________________________________________________________
   int signal=-1;
   if (time_bar!=Time[0]) {
      time_bar=Time[0];
      double stop_buy=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1);
      double stop_sell=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1);
      if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
         double super_buy=iCustom(Symb,0,"xSuperTrend Tape MTF NRP","","",SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF,0,1);
        if(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0;
         if(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1;
         }


 
スキーがうまくいかないんです、助けてください)
 
私はソースコードを持っている、私は本当にそれを必要とする、2つの指標を1つに結合するために私を助けることができるすべてのこんにちは、。
 
Олег:
こんにちは、すべての、私はソースコードを持っている2つの指標を1つにマージするのを助けることができる人、私は本当にそれが必要です。

マージするときにできないことを教えてくれるか、自分でやっていないのか、やりたくないのか、連絡してください。

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
 
Artyom Trishkin:

マージするときにできないことを教えてもらうか、自分でやっていない、やりたくないという人は連絡してください。

私は何ができないかを正確に調べようとしています、誰も無料で何も教えてくれそうにないことは理解しています - 資本主義のために、クソのために)).私はそれに反対するものは何もありません。ただ、なぜ買い方向のすべてのローソク足でトレードが始まるのかを理解する必要があります。