どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 375

 
okidoki543:
もし誰か手伝ってくれる人がいれば(上記参照)、コラボレーションを歓迎します。
商業ベースでは、問題なく、協力したい人の列ができる。そうでなければ...自分で書き始めれば、助けが来る。
 
Ekburg:

Slの代わりにOrderStopLoss()を入れる。


はうまくいかなかった...

void VirtualTral(int Dist_Tral,int Start_Tral,int Magic,int SL)
{

double dist=Dist_Tral;
double start=Start_Tral;
double priceopen=OrderOpenPrice();
double sl=OrderStopLoss();
 
if(OrdersTotal()<=0)
ObjectDelete("Stop"); 

int i, k=OrdersTotal();

  for (i=k-1; i>=0; i--) 
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {  

       if ((NormalizeDouble(priceopen+start*Point,Digits)<=Bid)&&(NormalizeDouble(Bid-sl*Point,Digits)>NormalizeDouble(dist*Point,Digits)))
         {                    
                sl=NormalizeDouble(Bid-dist*Point,Digits);
                Print(+sl);
                ObjectCreate("Stop",OBJ_HLINE,0,D'2013.02.20 12:30',sl);                                                         
                ObjectSet("Stop",OBJPROP_STYLE,1);                                                                                         
                ObjectMove("Stop",0,D'2013.02.20 12:30',sl);                                                                                                 
                if (NormalizeDouble(sl*Point,Digits) >=Bid)
             {
                Print("Закрываем");
                OrderClose(OrderTicket(),OrderLots(),Bid,50,Blue);
             }
         }               
      }
   }
}

うまくいっているように見えるが、何かが説明されていない...。

 
alexey1979621:
はい、今はそうですが、たくさんの取引を開いてしまいます。私は、与えられたペア、例えばEURAUDとAUDUSDのために開くために2つの取引だけが必要です。 。

フェルトツリーよりもシンプルなアルゴリズムです。

1.ユーロアウディにポジションがない場合は、ポジションを開設 してください。

2.AudiBucksにポジションがない場合 - ポジションを開設する。

 
vadynik:


うまくいかなかった...。

うまくいくように見えるけど、何かが足りない......。

priceopenは、注文が選択された後、すでにループで取られるはずではありませんか?
 
artmedia70:

フェルトツリーよりもシンプルなアルゴリズムです。

1.ユーロアウディにポジションがない場合は、ポジションを開設してください。

2.AudiBucksにポジションがない場合 - ポジションを開設する。


いや、アルテミス、私の場合はそうはいかないんだ。
extern double lotAU=1.3;
extern double lotEA=1.0;
extern double Profit=30;
extern int Operation=0;
extern string Сomment           = "KVAZ";
extern int Magic                = 1111;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

double prof;
double bidEA = MarketInfo("EURAUD",MODE_BID);
double askEA = MarketInfo("EURAUD",MODE_ASK);
double bidAU = MarketInfo("AUDUSD",MODE_BID);
double askAU = MarketInfo("AUDUSD",MODE_ASK);

string symEA = "EURAUD";
string symAU = "AUDUSD";

for(int i=OrdersTotal()-1; i>=0; i--)
{
 OrderSelect(i,SELECT_BY_POS);
 prof=prof+OrderProfit();
 Print("Profit="+prof);
}
if(prof>=Profit)
{
 for(i=OrdersTotal()-1; i>=0; i--)
 {
  OrderSelect(i,SELECT_BY_POS);
  {
  if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,0);
  }
 }
}

 if(Operation==0)
 {
  OrderSend(symEA,OP_BUY,lotEA,askEA,3,0,0,"KVAZ",Magic,0,Blue);
  OrderSend(symAU,OP_BUY,lotAU,askAU,3,0,0,"KVAZ",Magic,0,Blue); 
 }
 if(Operation==1)
 {
  OrderSend(symEA,OP_SELL,lotEA,bidEA,3,0,0,"KVAZ",Magic,0,Red);
  OrderSend(symAU,OP_SELL,lotAU,bidAU,3,0,0,"KVAZ",Magic,0,Red);
 }
 
   return(0);
  }
 
alexey1979621:
いや、アルテミダ、私の状況には合わないんだ。


ループの中で、シンボルとマジシャンに応じて位置を再計算する。

そして、OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,0)というものです。


追伸:アルテミダではなくアルテミダa

アートメディア

 
evillive:


ループの中で、シンボルとマジシャンに応じて位置を再計算する。

そして、OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,0)というものです。


追伸:アルテミダはアルテミダaではなく

アートメディア


さあ、私は誰もが私の名前を呼び出すのに慣れています...どうであれ

実は、この機能の終値は、以前は問題なく動作していたのです。コンパイラは必要な価格を勝手に詰め込んでしまうのだ。最近、この件でエラーになった人がいます。

 
artmedia70:

さあ、私は誰もが私の名前を呼び出すのに慣れています...なんであれ

ニックネームを変える時期?
 
alexey1979621:
いや、アルテミス、私の場合はそうはいかないんだ。


ええ、まあ...あなたの場合、これだけ曲がっていると、普通の提案ではなかなかうまくいきませんね......。
 
Zhunko:
ニックネームを変える時期?

この愛称は300年前のものだそうで...。好きになってしまった。