[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 304

 
pigvin:

問題は、EAが常に注文を再開することです。つまり、買いシグナルがあると、注文を開き、利益でそれを閉じ、条件がまだ維持されていると、再び注文を開くのです。

買い注文が開いたらカウンターが+1され、カウンターが0を超えないと新しい買いが開けられず、売った後だけカウンターがリセットされるという、従来の売買カウンターで解決できると思っていたのですが。

つまり、1本のバーに信号があるが、すでに使用されている?

このようにすることができます。

datetime save_time; 
int tf=0;
старт
...
if(total<1)//проверка количества ордеров 
   {
         if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0])))
            save_time =iTime(0,tf, iBarShift(0,tf,Time[0]));
         else return;


  ...
 if(ticket>0)
                      {
                         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("открыта позиция BUY : ",OrderOpenPrice());
      
                         else Print("Ошибка при открытии BUY позиции : ",GetLastError()); 
                        }else{ save_time =0;}// так как ошибка запретим ретурн (см. выше)
 
Operr:

こんな風に試してみてください。

if (OrderOpenTime()+2*1440*60  > Time[0])   //т.е. последнее время текушего графика а не локальное

どちらにも対応できるはずです。

そのほうが納得がいく。

if (Time[0]-OrderOpenTime() >= 2*1440*60 )   
 

皆さん、こんにちは。

オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。

実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。

ZS.プログラミングのテストは何回やってもダメで、初めてこういう問題を見ました。

 

皆さん、こんにちは。

多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。

М1の2つの反対注文で取引するEAを書く ことにしました。

考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動けば、2順目の一時的なSL発動時の損失は最小限に抑えられ、チャートが反転すれば、2ポジションで黒字になるという計算です。

片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです

現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。

PS 私は1ヶ月間この問題を解決していない、アドバイスやコードで私を助けてください:)

以下は、アドバイザーのコードです。

extern int SL=100;

extern int TP=100;

extern double StartLot=0.1;

extern double StopLot=1.0;

extern int bar_time=20;


double Lot()

{

double lt;

if(OrdersHistoryTotal()==0) return (StartLot);

if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderProfit()<0)

{

lt=OrderLots()*2;

if(lt>StopLot) return (StartLot);

else return (lt);

}

else

return (StartLot);

}

else

return (StartLot);

}

int start()

{

double lot;

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)

{

int order;

{

lot=Lot();

order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);

order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);

}

}

//вот здесь должно быть что-то что является решением проблемы и связующим звеном

{

int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;

if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }

if ( bars >= bar_time )

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);

}

return(0);

}


ありがとうございました。

 
1本のバーではダメ!原則、反転のシグナルや市場の乱高下がない限り、このトレンドでオープンしてはいけないのです!。
costy_:

つまり、1本のバーに信号があるが、すでに使用されている?

こんなことができる

 
snail09:

皆さん、こんにちは。

オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。

実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。

ZS.プログラミングテストは何回やっていないのか、人によっては些細なことかもしれないが、このような問題は初めて見た。

https://docs.mql4.com/ru/math/MathPow ない?あるいは初歩的な演算が問題の条件。 それなら選択肢http://bpascal.ru/download/desc/436.php すべて手書きでやるなら、指数や対数を自作関数で実装する。

 
индикаторcosty_:

while(i>=0) を使っているので、新しいローソク足が現れたらi=1(前のローソク足のデータを一旦固定データで計算するようにするため) です。

なぜsome_time=D'1971.01.11 00:00' を入力し、Bars、 IndicatorCountedを使用 すると、私のために動作しません(まあ、エラーはおそらく最初の_t_barのせいです)

あなたのアルゴリズムで、修正すべきです。

"プログラミング 初心者 "です。"2007年からプログラミングを始めた新参者 "です)。


some_time=D'1971.01.11 00:00'; ここでは起動時に一度だけ使用 されます。しかし、ある場合はうまくいき、別の場合はうまくいかないので、そのこととは関係ないのです。後日、インジケーターを作り直します。これは、別のインジケーターを改良したものです。返信ありがとうございました

 
Sonne:

皆さん、こんにちは。

多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。

М1の2つの反対注文で取引するEAを書くことにしました。

考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動いてくれれば、2順目の一時的なSL発動時の損失は最小限で済むが、チャートが反転すれば、2ポジションで黒字になるという計算である。

片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです

現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。

月のPSは、この問題を解決することはできませんが、アドバイスやコードを助けてください:)。

以下はそのコードです。

................................................

ありがとうございました。

1.武井のクローズドポジションがある場合...

1.1 タイプがOP_BUYの場合 ...

1.1.2 OP_SELL、...のオープンポジションがある場合

1.1.3 現在のバーの時間から売りポジションを開始したバーの時間を引いた値が、遅延のためのバー数 以上である場合、...。

1.1.4 売りポジションを決済する

1.2 タイプが OP_SELL の場合、 ...

1.2.2 オープンポジションOP_BUYがある場合 ...

1.2.3 現在のバーの時間から買いポジションの開始時間を引いた時間が、保持するバー数以上である場合、 ......。

1.2.4 買いポジションを閉じる

 
こんにちは、あなたは、通常の物語(穴なし)を取得する場所をアドバイスしてくださいとMT4用のMT5から分ストーリーかどうかを教えてください。
 

皆さんこんばんは、以前はくだらない質問で申し訳ありませんでした)

Aという変数があり、その瞬間に価格値を与えて取引するEAが可能かどうか知りたい。この値を任意の履歴値に変更したい場合は、例えば任意の月次値を取り、履歴の解析から目的の値を導き出す。ストラテジーテスターでやって みたが、その正しさには疑問が多い。それとも、やり直して配列で作業しなければならないのでしょうか!?皆さん、ありがとうございました。

p.s. MQLハンドブックやチュートリアルに載っていなかったので、知りたいです。