Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
皆さん、ごきげんよう。私はここでインジケータを回しています。私は、すべて正しいことをしたと思っています。でも、そのことが...すべてのローソク足でトレードを開始
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」);
}
//--------------------------------------------------------------------
皆さん、ごきげんよう。私はここでインジケータを回しています。私は、すべて正しいことをしたと思っています。でも、そのことが...全てのキャンドルにディールを開けました。
シート」は本当に印象的です :-) コードをもっと注意深く挿入し、明らかに不要なものをコピーしないようにします。
というテーマで、stop_buyとstop_sellの値を自分でプリントアウトしてみましょう。条件が明示的に発動されるため :
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
stop_buy と stop_sell はEMPTY_VALUE の代わりに 0 で初期化されるかもしれません。
もちろん、"シート "は非常に良いものです :-) もっと慎重にコードを挿入し、明らかに不要なものはコピーしないようにします。
題して、stop_buyとstop_sellを自分で印刷する。なぜなら、明らかに条件が発動されるからです。
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
stop_buy と stop_sell はEMPTY_VALUE ではなく 0 で初期化されているのかもしれない。
すみませんでした )) - せっかく1ページ分も))
今すぐ試してみる)
もちろん、"シート "は非常に良いものです :-) もっと慎重にコードを挿入し、明らかに不要なものはコピーしないようにします。
題して、stop_buyとstop_sellの値を自分でプリントアウトする。なぜなら、明らかに条件がトリガーされるからです。
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
stop_buy と stop_sell はEMPTY_VALUE の代わりに 0 で初期化されるかもしれません。
それでもうまくいきません。ちなみに、売り注文は正しく開くのですが、買い注文では狂って10億円開いてしまうことに気づきました))
やはり同じようにはいきません。ちなみに、売りでの取引は正しく開いているのに、買いではおかしくなって10億円も開いてしまうことに気づきました))
まあ、少なくとも検索は可能なんだろう?コードを挿入...
なんということでしょう・・・。検索をオンにしなくても、フォーラムのエンジンがスキレットそのものを置く...せめて検索できるようになりませんか?コードを挿入...
残念だ...。検索をしなくても、フォーラムのエンジン自体がスキレットを入れてくれます。フォーラムでのマナーについてあまり経験がないので、深くお詫び申し上げます)))
こんにちは、すべての、私はソースコードを持っている2つの指標を1つにマージするのを助けることができる人、私は本当にそれが必要です。
マージするときにできないことを教えてくれるか、自分でやっていないのか、やりたくないのか、連絡してください。
マージするときにできないことを教えてもらうか、自分でやっていない、やりたくないという人は連絡してください。
私は何ができないかを正確に調べようとしています、誰も無料で何も教えてくれそうにないことは理解しています - 資本主義のために、クソのために)).私はそれに反対するものは何もありません。ただ、なぜ買い方向のすべてのローソク足でトレードが始まるのかを理解する必要があります。