[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 321

 
Boneshapper:

これを書くとき、条件の前にFlag=0と書かないのは、そうするとトランザクションの前に毎回更新されて常に0になるからです。 値を指定しない場合、例えばint Flagだけなら、プログラムは0を代入しますよね?

私は、Flagがstart関数の中ではなく、外側にあるコードを書きました。中に入れたら意味がない。
 
Roger:

変だな、コードが動いてる。置き場所が違うのでは?
Flagの値がifの中で与えられていて、ifから抜けるときにそれを失っていたのが原因だとわかりました。
 
Roger:

私は、Flagがstart関数の内側ではなく、外側にあるようなコードを書きました。中に入れたら意味がない。

すみません、返信を書いたのですが、お返事を拝見していませんでした。
はい、そうです、まさに私のミスです。 しかし、解決策はStaticを使うことでした。

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

 

おやすみなさい!

という関数があるかどうか教えてください。

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
if (OrderSelect(1001, SELECT_BY_TICKET)== true)
int Ticket = OrderTicket ();
Alert ("Ticket =",Ticket);
OrderClose(Ticket,Loot,Ask,50,R);
} (注1)注文は、1回に限り有効です。

ordersend関数で マジックパラメータを使って、この番号の注文を検索する方法がよくわからないのですが?

そして、関数を使用すると

boolOrderSelect() int インデックス、int セレクト)
SELECT_BY_TICKETオプションで、どのインデックスを設定すればよいのでしょうか?

 

マジックを使うには、まず自分のものと同じようにセットアップし、ラウンドするときにその存在を確認する必要があります

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
//...
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if(OrderMagic()==1001)
{

Alert ("Ticket =",OrderTicket()); 
OrderClose(OrderTicket(),Loot,Ask,50,R); 
}}}
 

皆さん、こんにちは!!!

質問:Expert Advisor(MQL4)から取引履歴に アクセスすることは可能でしょうか?

つまり、前の案件は不採算で、前の案件は採算が取れたというように、歴史の奥深くにある10件の案件がそうであったということでしょうか。

Expert Advisorは大きな損失取引の後に利益取引が連続するため、MMには必要なものです。

思いついたのですが、負けトレードの後、例えば3回、5回と連続してポジションを増やし始め、次の

で、次の負けトレードを待ちます。

 

みんなに手を出すな、まだ寝ているんだ、何しろ土曜日だ。

アクセスは、コードベースで「マーチンゲール」(martingale)というコントロールワードを持つEAを探して、整理することができます。

 
Tatar:

皆さん、こんにちは!!!

質問:Expert Advisor(MQL4)から取引履歴にアクセスすることは可能でしょうか?

つまり、前の案件は不採算で、前の案件は採算が取れたというように、歴史の奥深くにある10件の案件がそうであったということでしょうか。

Expert Advisorは大きな損失取引の後に利益取引が連続するため、MMには必要なものです。

思いついたのは、負けトレードの後、例えば3回、5回と連続してポジションを増やし始め、次の

負けトレード


もちろん、可能です。ここを見て ください。自分で根拠を持ち、自分の取引条件に合わせることができます。

最後に決済された注文の結果に従ってポジションを整理する例です(注文履歴の中で最も新しいもの、私のシステムでもこのように整理されています)。

//---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
         continue;
      }
   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if(time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
         
        // Print ("lastProfit = ", NormalizeDouble(lastProfit, 1));
         
       
         
         // Анализ только что закрывшегося ордера
      
         if (lastProfit >= 0.0)
         {.... Здесь действия, при положительном профите ордера...
 .....
......
......
 
 
artmedia70:

double iMA( string symbol,int timeframe,int period,int ma_shift,int ma_method,int applied_price,int shift)

移動平均の計算を行います。
パラメータ
記号 - シンボル名:指標となるデータのシンボル名。NULLはカレントシンボルを意味する。
タイムフレーム - 期間チャートの期間の いずれかを指定することができます。0は現在のチャートの期間を意味します。
時期 - 移動平均計算の平均化期間。
ma_shift - 価格チャートに対するインジケータの相対的な移動。
ma_method - 平均化方式。移動平均 法の任意の値を指定することができます。
適用価格 - 使用した価格です。価格定数の いずれかを指定することができる。
シフト - 指標バッファから取得した値のインデックス(現在のバーから指定した期間だけ後ろにずらす)。


ma_shift は見ての 通り、整数(МАшки 行が右または左にシフトする小節数)です。また、±0.21%は2倍 なので、うまくいきません。

あなたの望みを理解していますか?

あなたはすべてを正しく理解しています。まさにRumus(フォレックス・クラブ)にはそんな可能性があり、この「エンベロープ」がTS「日中保守的スキャルピング」のベースになっているのです。MT4で同じことをしたかった。しかし、あなたが説明したように、そうではありません :)

 

Rimlyanin:

あなたはすべてを正しく理解しています。ただ、Rumus(フォレックス・クラブ)にはそんなチャンスがあり、この「封筒」がTS「保守的な日中スキャルピング」のベースになっているのです。MT4で同じことをしたかった。しかし、あなたが説明したように、それは運命ではありません :)

あなたは誤解している。

封筒が必要な場合は、MAを上下にずらします。

MAは左へ、右へ(Alligatorのように)シフト するものです。