//================================================================================================================ //------------------------------- Определение тоннеля и его верхней и нижней границ ------------------------------ //================================================================================================================ if (NormalizeDouble(MathAbs(MA169-MA144),dg)/pt<=sp) // Если разница МАшек меньше спреда, ...
Tonnel=false; // Тоннель меньше спреда - считаем, что он узкийif (NormalizeDouble(MathAbs(MA169-MA144),dg)/pt>sp) // Если разница МАшек больше спреда, ...
Tonnel=true; // Тоннель больше спреда - считаем, что он норм.//------------------------------------------------------------- if (CmpD(MA169,MA144)) { // Если 169-я МАшка выше 144-й, ...
UP_Limit=MA169+sp*pt; // ... то 169 - верх тоннеля, ...
DN_Limit=MA144-sp*pt; // ... а 144 - низ тоннеля
}
if (CmpD(MA144,MA169)) { // Если 144-я МАшка выше 169-й, ...
UP_Limit=MA144+sp*pt; // ... 144 - верх тоннеля, ...
DN_Limit=MA169-sp*pt; // ... 169 - низ тоннеля
}
if (NormalizeDouble(MA169-MA144,dg)==0) { // Если 169-я МАшка равна 144-й, ...
UP_Limit=MA169+sp*pt; // ... то 169 - верх тоннеля, ...
DN_Limit=MA144-sp*pt; // ... а 144 - низ тоннеля
}
//------------------------------------------------------------- string NameArUP=Prefix+"UP"+TimeToStr(Time[0]); // Нарисуем тоннельstring NameArDN=Prefix+"DN"+TimeToStr(Time[0]);
SetArrow(4, DeepSkyBlue, NameArUP, Time[0], UP_Limit, 0); // Его верх
SetArrow(4, Gold, NameArDN, Time[0], DN_Limit, 0); // Его низ//================================================================================================================ //------------------------------------- Проверка на вхождение цены в тоннель ------------------------------------- //================================================================================================================ if (CmpD(UP_Limit, pa) && CmpD(pb, DN_Limit)) {
if (Above) { // Если цена была выше тоннеля
LastAbove=true; // Ставим флаг "прошлого" положения цены "выше"
LastBottom=false; // Снимаем флаг "прошлого" положения цены "ниже"
}
if (Bottom) { // Если цена была ниже тоннеля
LastBottom=true; // Ставим флаг "прошлого" положения цены "ниже"
LastAbove=false; // Снимаем флаг "прошлого" положения цены "выше"
}
Inside=true; // Ставим флаг расположения цены внутри тоннеля
Above=false; // Сброс флага "над"
Bottom=false; // Сброс флага "под"
ReadyTradeB=true; // Флаг готовности к торговле Бай
ReadyTradeS=true; // Флаг готовности к торговле Селл
}
//================================================================================================================ //------------------------------- Проверка на расположение цены относительно тоннеля ----------------------------- //================================================================================================================ if (CmpD(pa,UP_Limit)) { // Если цена выше тоннеляif (Inside) {
Inside=false; // Сброс флага нахождения цены внутри тоннеля
LastInside=true;
}
Above=true; // Цена находится над тоннелем
Bottom=false;
}
if (CmpD(DN_Limit,pb)) { // Если цена ниже тоннеляif (Inside) {
Inside=false; // Сброс флага нахождения цены внутри тоннеля
LastInside=true;
}
Bottom=true; // Цена находится под тоннелем
Above=false;
}
//================================================================================================================ //------------------------------------ Проверка на пересечение границ тоннеля ------------------------------------ //================================================================================================================ // .... пока не отлажу предыдущее, за это не стоит и браться...//----------------------------------------------------------------
DTz Alpari...maybe I should modify p after open order and place stop?...tell me how roughly this can be done or point me to an EA where this is done... please。
回答ありがとうございましたが、私はロシア語で書かれたアルゴリズムを持って いますが、私はmqlが得意ではありません、少なくともオープン売り/買い注文の数(私は設定でそれを書くよ)、その後sellstop/buystop保留命令を置くことを禁止する信号を修正した関数のヒントを示します。
すでに書いてあるこのアルゴリズムが、なぜコードに反映されないのでしょうか?
書いていない自分のコードを一度に見ただけで、間違いを指摘されるとでも思っているのでしょうか。
やはり「読む」ことが必要なのだ...。
ここでは、ちょっとした紙に書いたことがすべてコードにも表れているコードを抜粋して紹介します。
だから、一番シンプルなことが直るまでは、それ以上踏み込まない方がいい...。
で、何があるんだ?全部重ねて、一行もコメントしてないじゃないですか。今度は1週間休んで、自分のコードに戻してください。思い出すのに2時間はかかると思います。100%
恒久ロット0.1。
その場合、私見では、この1週間は良い結果だと思います。正確には覚えていませんが、800点くらいでしょうか。ただ、安定性だけは、あまり良くないと思います。チャートがあまり滑らかでないので...。とにかく、回答ありがとうございました。少なくとも、何らかの姿が浮かび上がってきています。私はかなり遠くて、年間3000〜4000ポイントが限界です。でも、私のバランスチャートはもっとフラットなんです...。
私は、定数ロット0.1 - しかし、どのようなレバレッジで考えてきましたか?残高表からはよくわからないのですが、何ポイント獲得されたのでしょうか?
このような指標から、選択したFibaレベルの値を取得するにはどうすればよいですか?
//+------------------------------------------------------------------+
//| Parabolic_ZZ.mq4(パラボリック・ゼロ・ズィー)
//| 著作権 ©2009, Vic2008
//| |
//+------------------------------------------------------------------+
#property copyright "著作権 © 2009, Vic2008"
#プロパティリンク ""
#include <stdlib.mqh>.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 レッド
#property indicator_color2 マゼンタ
//---- 入力パラメータ
extern double SAR_step=0.02; //パラメータ パラボリック.
extern double SAR_maximum=0.2;
extern int BarsCount = 500; //インジケータを描画するバー単位での距離です。
extern bool Fibo1_off = False; //Fiboレベルを無効化します。
extern bool Fibo2_off = False;
extern bool Fibo_Absolut_Value = False; //Fiboレベルの絶対価格値を含める。
extern color Label_Color = Gray;
extern color Fibo_Color = Blue;
//---- バッファ
double ExtMapBuffer1[]。
double ExtMapBuffer2[]。
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexBuffer(0,ExtMapBuffer1)を設定します。
SetIndexStyle(0,DRAW_SECTION)を設定します。
SetIndexBuffer(1,ExtMapBuffer2)を設定します。
SetIndexStyle(1,DRAW_SECTION,0,2,Magenta)を設定します。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll(0,OBJ_ARROW)を実行。
ObjectDelete("FiboZZLast")。
ObjectDelete("FiboZZPrev")。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ反復関数
//+------------------------------------------------------------------+
int start()
{
//int counted_bars=IndicatorCounted();
文字列txt;
int w,PosLow,PosHigh;
double LPic=1000000,HPic=0,price;
datetime TimeTmp;
//----
ExtMapBuffer1[0]=Close[0];
ExtMapBuffer2[0]=EMPTY_VALUE。
for( w=0;w<BarsCount;w++ ){。
if( w!=0 ){ ExtMapBuffer1[w]=EMPTY_VALUE; ExtMapBuffer2[w]=EMPTY_VALUE; }.
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) > Close[w] && LPic>=Low[w] ){ LPic=Low[w]; PosLow=w; } }.
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic<=High[w] ){ HPic=High[w]; PosHigh=w; } ←クリックすると拡大します。
// H -> L
if( iSAR(NULL,0,SAR_step,SAR_maximum,(w+1)))> Close[w+1] && iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic!=0)
{
ExtMapBuffer1[PosHigh]=HPic;
ExtMapBuffer2[PosHigh]=HPic;
HPic=0です。
}
// L -> H
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && iSAR(NULL,0,SAR_step,SAR_maximum,w+1) > Close[w+1] && LPic!=1000000 )
{
ExtMapBuffer1[PosLow]=LPic;
ExtMapBuffer2[PosLow]=LPic;
LPic=1000000です。
}
}
if( Fibo1_off ) ObjectDelete("FiboZZLast");
if( Fibo2_off ) ObjectDelete("FiboZZPrev");
//価格マークとFIBOレベルを描く
int wave_cnt=0;
for( w=0;w<BarsCount;w++ ){。
if( ExtMapBuffer2[w]!=EMPTY_VALUE ){。
if( wave_cnt<=3 ){。
ObjectDelete("PZZ_"+DoubleToStr( wave_cnt, 0));
ObjectCreate("PZZ_"+DoubleToStr( wave_cnt, 0), OBJ_ARROW, 0, Time[w], ExtMapBuffer2[w], Time[w], 0).ObjectCreate("PZZ_"+DoubleToStr( wave_cnt, 0), OBJ_ARROW, 0, Time[w], 0);
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_ARROWCODE, SYMBOL_LEFTPRICE ) を実行します。
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), SYMBOL_LEFTPRICE, ExtMapBuffer2[w]);
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_COLOR, Label_Color );
if(wave_cnt==1 && Fibo1_off==False ){。
ObjectDelete("FiboZZLast")。
ObjectCreate("FiboZZLast", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price) を実行します。
ObjectSet("FiboZZLast", OBJPROP_LEVELCOLOR, Fibo_Color)を使用します。
ObjectSet("FiboZZLast", OBJPROP_COLOR, Fibo_Color)。
ObjectSet("FiboZZLast", OBJPROP_RAY, False );// 光線を有効にするには、False を True に置き換えます。
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0");
if( Fibo_Absolut_Value){。
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0");
}
}
if( wave_cnt==2 && Fibo2_off==False ){。
ObjectDelete("FiboZZPrev")。
ObjectCreate("FiboZZPrev", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price) を実行します。
ObjectSet("FiboZZPrev", OBJPROP_LEVELCOLOR, Fibo_Color).FiboZZPrevは、OBJPROP_LEVELCOLORとFibo_Colorを組み合わせたものです。
ObjectSet("FiboZZPrev", OBJPROP_COLOR, Fibo_Color)を使用します。
ObjectSet("FiboZZPrev", OBJPROP_RAY, False );// 光線を有効にするために False を True に置き換えます。
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14)を使用します。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0");
if( Fibo_Absolut_Value){。
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14)を使用します。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0");
}
}
}
wave_cnt++;
price=ExtMapBuffer2[w]。
TimeTmp=Time[w]です。
}
}
//----
return(0)です。
}
//+------------------------------------------------------------------+
このような指標から、選択された繊維レベルの値を得るにはどうしたらよいでしょうか?
なんだこりゃ
戦争と平和」も入れたほうがいいかもしれませんね。
help please...私のExpert Advisorはオープンオーダーをチェックします。一度に1つのオーダーをオープンすることができます。
if(down>0)
{ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red)。
サイズ100のストップを入力する
ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...テスターでエラー130が出る。
DTz Alpari...maybe I should modify p after open order and place stop?...tell me how roughly this can be done or point me to an EA where this is done... please。
help please...
help please...アドバイザーは、オープンオーダーのチェック機能を備えています...一度に1つの注文を開くことができます...しかし、オープンの時点で直接ストップサイズを入力する場合
新しい注文は、それが開かれた後に変更され、ストップが設定されるかもしれません...あなたはこれを行う方法またはこれが行われるEAに私を指して助言してください...お願いします。
ストップはdouble 型 でなければならない。ストップを設定する価格を指定する必要があります。
100*ポイント
すでに書いたこのアルゴリズムが、なぜコードに反映されないのでしょうか?
整形されていないコードを見ただけで、すぐに間違いを指摘できるとでも思っているのでしょうか。
やはり「読む」ことが必要なんですね...。
ここでは、紙にスケッチしたものがすべてコードにも表示されているところを抜粋して紹介します。
だから、一番シンプルなことがきちんとできるまでは、それ以上進まないほうがいい...。
あなたはどうですか?全部重ねて、一行もコメントしてないじゃないですか。今度は1週間休んで、自分のコードに戻してください。思い出すのに2時間はかかると思います。100%
すみません、コードは私のものではありません、自分で勉強しています。 これは、保留中の注文に関する部分で、あとは、普段、設定、ロット、フラクタル、トロールでやっているような、ぼやけた内容でした。このEAが機能していない、つまり積み上げられた注文のために負けているので、いくつかの制限を設けて様子を見ることにしたのです。mql言語を使用する予定ですが、何をどうすればいいのか全くわかりません。ありがとうございます、調べてみます。
それは変ですね。何を謝ることがあるんだ?まあ...自分でコードを設計すべきことを示したので、後から考える必要はない。
そして、あなたのコードは他の人のものなので...でも...また、解析中に意味がわかってきた文字列については、コメントすることもできます。その後で、分析したものをもとに自分で書くとわかりやすいと思います。だから、完全に理解し、理解し、自分のニーズに合わせて変換すること。
それこそが、論理的な 理解につながるのです。また、体にも良いだろう。:)
がんばってください。