int ПодсчетОткрОрдеров() { int k=OrdersTotal(); if (Символ=="0") Символ=Symbol(); for (int i=МаксКолОрдеров; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Символ || Символ=="") { if (МагикНомер<0 || OrderMagicNumber()==МагикНомер) { if (OrderMagicNumber()<1) return(True); } } } } return;
}
//+------------------------------------------------------------------+ int start() { if(ПодсчетОткрОрдеров()==0)ПровТоргУсловий(); }
bool Fact_1 = false; // Глобальная перемен для бай. bool Fact_2 = false; // Глобальная перемен для бай bool Fact_3 = false; // Глобальная перемен для бай
double support; double resist;
int timeFrame = 5; int numBars = 15; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
ObjectsDeleteAll(); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //----
//--------------------------------------------------------------------------- if (Fact_3==true) //Если событие уже..
//..было, то выходим return(0);
//----
//---- БЛОК ОТКРЫТИЯ BUY--------------------------------------------------------------
if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&& iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5 Fact_1 = true; // Произошло событие 1 //- if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50 Fact_2 = true; // Произошло событие 2 if (Fact_2 == true)
{ // Определяем линии поддержки\сопротивления support = 10000; resist = 0;
for(int u = 1;u<=numBars;u++) { if(support>iLow(Symbol(),timeFrame,u)) support = iLow(Symbol(),timeFrame,u); if(resist<iHigh(Symbol(),timeFrame,u)) resist = iHigh(Symbol(),timeFrame,u); } ObjectSet("lineSupport",OBJPROP_PRICE1,support); ObjectSet("lineResist",OBJPROP_PRICE1,resist);
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(n>1)
if(ind!=0) n--;
else
if(ind!=0) return(ind);
}
}
ピークの小節番号が必要な場合は、関数の型を int に変更し、return(ind); の代わりに return(i) と記述してください。
今、私が考えているのはこのことです。double 型と int 型のすべての関数は,常に具体的な固定値を返します.例えば、1、0 、-1、この場合は、この関数で以前とは違う方法で条件を処理する必要があります、例えば。
この場合、例えば3つの部族について比較する必要があります。
これは論理的な書き方なのでしょうか?この関数にbool 型を設定する方が合理的なのでは?例えば、3つ目の膝が見つかったら、(indより 低いか高いか)値段で売買する、とか。
そしてこの場合、そのn-knee パラメータを持つ関数とこのkneeでの価格を比較し、そして何をするか?
今、考えているところです。double型や int 型の私の関数はすべて、常に特定の固定値を返します。例えば、1、0 、-1など ですが、この場合、この関数でさっきとは違う方法で条件を実行する必要があります、みたいな。
この場合、例えば3つの部族について比較する必要があります。
これは論理的な書き方なのでしょうか?この関数にbool 型を設定する方が合理的なのでは?例えば、3つ目の膝が見つかったら、その値段で(indより 下か上か)買うか売るか。
この場合、パラメータn個の膝を 持つ関数と、この膝での価格を比較しているのですが、その後どうなるのでしょうか?
Double indは-2、-3などを返すことができ、円周率3.14159も......。
そしてこの場合、そのn個の膝を パラメータとした関数と、この膝での価格を比較しているのですが、その後どうするのでしょうか? よく分かりませんが...。
今、考えているところです。double型や int 型の私の関数はすべて、常に特定の固定値を返します。例えば、1、0 、-1など ですが、この場合、この関数でさっきとは違う方法で条件を実行する必要があります、みたいな。
この場合、例えば3つの部族について比較する必要があります。
これは論理的な書き方なのでしょうか?この関数にbool 型を設定する方が合理的なのでは?例えば、3つ目の膝が見つかったら、(indより 低いか高いか)値段で売買する、とか。
そしてこの場合、そのn-knee パラメータを持つ関数とこのkneeでの価格を比較し、そして何をするか?
いやいや、実験してみてください......全部デタラメですよ......。
Double indは-2、-3などを返すことができ、円周率3.14159も......。
そしてこの場合、そのn個の膝を パラメータとした関数と、この膝での価格を比較し、そして何をするのか?
なぜ、いきなりそんなことをしなければならないのか。Double ind は小数を返し,-2, -3 ... は整数を返します.そして、私の理解では、Double ind はget_extrem(int n)パラメータで膝上の価格
このサイトは取引用ではありません...主にMQLのプログラミングに特化しています。多くのコードに注意を払うと、「実際の取引には使用しないでください」と警告されていることさえあります。
そして、プロフのようなトレードをするプロフはどこにいるのでしょう。 また、管理人がこのようなことを知ったら、わざわざサイトを維持しないと思います・・・))
壁の中の豆のように )。
必要なのは、ランダムに選んだ時期に、適切な買い方をした例です。
そう、彼らは実業界向けではないと書いている...。だから何?なぜ?
ストラテジーを発表せずに、実際のトレードの例を示せばいいのに。
あるいは、原理的に適切な例がない。
こんにちは。Heiken Ashi(HA) Hi-Lo (amplitude) パラメータを対応するインディケータから取得する方法を教えてください。グローバル変数を扱おうとしたのですが、なかなかうまくいきません。HAコードでは、以下の方法で取得を埋め込んでいます。
int start()
{
double haOpen, haHigh, haLow, haClose
...
GlobalVariableGet(pip)です。
...(これはHA計算を含む標準的なコードです)
とすると、Hi-Lo ローソク足のパラメータが得られます。
result2=MathMin(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1])となります。
result22=MathMax(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1])となります。
result3=MathMin(Low[pos+1],result2)となります。
result33=MathMax(High[pos+1],result22)となります。
result0=result33-result3; / HA振幅の計算
GlobalVariableSet(pip,result0);/ 振幅値の割り当て
pos--;
}
//----
return(0)です。
}
そこで、EAの数式にGlobalVariableGet(pip) を挿入したところ、何かが全く間違っている、つまり、pipの値があるべき 値になっていないのです。何が問題なのか、教えてください。あるいは、EA動作のためのHA振幅を得ることが容易なのかもしれません。
同一口座で複数のEAを利用する場合は、注文数を 限定して開設する必要があります。
例:10個のEAがあるが、注文は5個まで、ただし1通貨ペアにつき1個までとする。
これは以下のように実装されていますが、そのように動作するわけではありません。
extern int МаксКолОрдеров = 5;
//+------------------------------------------------------------------+
int ПодсчетОткрОрдеров() {
int k=OrdersTotal();
if (Символ=="0") Символ=Symbol();
for (int i=МаксКолОрдеров; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Символ || Символ=="") {
if (МагикНомер<0 || OrderMagicNumber()==МагикНомер) {
if (OrderMagicNumber()<1) return(True);
}
}
}
}
return;
}
//+------------------------------------------------------------------+
int start()
{
if(ПодсчетОткрОрдеров()==0)ПровТоргУсловий();
}
1.グローバル変数については上で促されました、ありがとうございます。ドキュメントを読んでいるのですが、あなたのバージョンでは、どのように行われているのですか?
2.Expert Advisorが利益に達した後、取引承認の手動確認があるまで、再度市場に参入しないようにしたいのですが。
1.各バーでの利益水準をモニターしています。指定された保証金の割合を超えた場合、すべての案件が終了します。
2.このExpert Advisorを 見たり、編集したり、magikのフィルターを追加したり、必要なことは何でもできます...
コードを完成させるのを手伝ってください。というコードを書いてみた。
-MA50がMA200を下から上へクロスした場合、そして
-МА50まで価格が下がったら
-チャート上にサポートとレジスタンスの2本のラインが引かれます(過去15本のバーに対して引かれます)。
それはすべてが動作するようなものですが、私はこれらの行が最初に登場したことを確認することはできませんし、所定の位置に残って、それは取引アルゴリズムに 必要(と彼らは描画され続ける)です。
時間やバーで縛ることはできますか?
以下はそのコードです。何を追加する必要がありますか?
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
bool Fact_1 = false; // Глобальная перемен для бай.
bool Fact_2 = false; // Глобальная перемен для бай
bool Fact_3 = false; // Глобальная перемен для бай
double support;
double resist;
int timeFrame = 5;
int numBars = 15;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//---------------------------------------------------------------------------
if (Fact_3==true) //Если событие уже..
//..было, то выходим
return(0);
//----
//---- БЛОК ОТКРЫТИЯ BUY--------------------------------------------------------------
if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true; // Произошло событие 1
//-
if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
Fact_2 = true; // Произошло событие 2
if (Fact_2 == true)
{
// Определяем линии поддержки\сопротивления
support = 10000;
resist = 0;
for(int u = 1;u<=numBars;u++)
{
if(support>iLow(Symbol(),timeFrame,u))
support = iLow(Symbol(),timeFrame,u);
if(resist<iHigh(Symbol(),timeFrame,u))
resist = iHigh(Symbol(),timeFrame,u);
}
ObjectSet("lineSupport",OBJPROP_PRICE1,support);
ObjectSet("lineResist",OBJPROP_PRICE1,resist);
}
//----
{
ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
ObjectSet("lineResist",OBJPROP_COLOR,Red);
}
//----
//что сюда добавить что бы линии появившись, оставались на месте?
//----
return(0);
}
何が起こるのか、何が起こりうるのか、もし
スリッページのマージンを指定せず、買い、売りを行う。通常、±2ポイントを入れる。
応答はリクオート です。
また、スリッページ値が設定されていない場合、買い取りは保証されるのでしょうか?