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

 
CLAIN:

面白いのは、預金が十分あることです。私はそこに大きな蓄えをもっています。
ポジションを開いた 直後にPrint()でエラーを出力し、その理由を確認する。
 

質問です。

インジケータを書きました。主な使用関数 Order と Account は、Symbol() everywhere iClose iOpen です。しかし、なぜかこのインジケータはEURUSDでのみ動作します.........................。他のツールも試したがハングアップする((。

インジケータの本質:アカウント、フリー資金、オープンするロットのコウ数、どのくらい開いている、お金の比率利益/リスク、セットアップのみ場合(OrderSymbol()!=Symbol())継続に関する情報が表示されます。

10~20回ほど理由を再確認。わけわかんない...(((;゚Д゚))))))))

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

 
sergeev:

ダニ

MT4でボリュームグループからすべてのインジケータがティックボリュームを 表示することが判明しました。
 
paladin80:
ポジションを開いた直後にprint()して、エラーの原因を確認します。


面白いのは、テスターで問題がないことです。2000年以降、現在に至るまで、水抜きなしで動作しています。

は、そのコードが役に立つのでしょうか?

//+------------------------------------------------------------------+ 
//| StMartin.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

    extern int TP = 1000; 
    extern int TS = 1000; 
    extern double lots = 1.0; 

    double volumz; 
    int ticket,total; 
    int slip = 3; 
    int Magic = 7; 

 


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 

        ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"First order",Magic,0,Yellow); //открываем первый ордер 
 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 

OrderOpenFunction(); 
StrahBuy();
StrahSell();

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 

void OrderOpenFunction()
{
   OrderSelect(ticket,SELECT_BY_TICKET);
   if(OrderCloseTime()>0)
   {
      
      total = OrdersTotal();
      Comment("OrderCloseTime = ",OrderCloseTime()," ms");
      if(total < 1) 
      { 
         OrderSelect(ticket,SELECT_BY_TICKET); 
         volumz = OrderLots(); 
         Print("Orderlots = ", OrderLots());
         if(OrderType() == OP_BUY)
         {
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               double lot1 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
            }
         }
         if(OrderType() == OP_SELL)
         {
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
            }
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               double lot2 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
         }
      }
   }    
}      
  
void StrahBuy()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_BUY)
      {
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            double lot1 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
         }
      }      
   }
}

void StrahSell()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_SELL)
      {
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
         }
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            double lot2 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
      }
   }   
}

つまり、メインとなる機能が1つあって、他の2つはそれを複製しているだけなんです。保険のつもりでやったが、やはり失敗した。

 
CLAIN:


面白いのは、テスターに問題がないことです。2000年から今日まで、水抜きなしで動いています。

コードを見ればわかるかも?

つまり、メインとなる関数が1つあり、他の2つはそれを複製しているだけなのです。保険のためにやったが、やはり動かなくなった

とても不思議なコードです。初期化でポジションを開き、for operator なしで注文を検索するのは非常に困りますね。こんなの初めてです。コードにプリント()を挿入します。信じてください、役に立ちます。
 
CLAIN:


面白いのは、テスターでは問題がないことです。2000年から今日まで、水抜きもせずに動いています。

は、そのコードが役に立つのでしょうか?

つまり、メインとなる機能が1つあって、他の2つはそれを複製しているだけなんです。保険として作ったが、やはり動かなくなる。

テスター:ストップロス#68@1.2887(1.2885 / 1.2887)。
16:56:31 2010.07.15 15:04 EURUSD,M30: オーダーロット = 1
16:56:31 2010.07.15 15:04 Tester:not enough money to buy 2.00 EURUSD at 1.2887 sl: 1.1885 tp: 1.2905 [2010.07.15 15:04] Tester:not enough money to buy 2.00 EURUSD at 1.2887 tp: 1.1885 tp: 1.2905
16:56:31 2010.07.15 15:04 テスター: PrevBalance: 1838.36, PrevPL: 0.00, PrevEquity: 1838.36, PrevMargin: 0.00, NewMargin: 2577, FreeMargin: -738.84
16:56:31 2010.07.15 15:04 martin EURUSD,M30:OrderSend error 134

ロット=1.0でもTP=1000、SL=1000はやりすぎだと思うのですが))

ロットを小さくして、TP=1000にすれば、幸せになれると思います。

 

の人たち!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 助けてーーーーーーーーーーーーーーーーーーーーもう一度お願いします!!!同じ質問ですが、なぜMT4でEURUSDだけインジケータが開くのですか?なんとも不思議な話です。 インジケータにペアの制限はなく、Symbol()はどこにでもあり、OrderとAccountの主要な関数です。インジケータを外すと別のペアでも動かなくなるというか、切るまでMT4が完全にハングアップしてしまいます。インジケータは自分で書きました。他のペアではこの動作は理解できない。長いインジケーターなので、表示させないようにしたい。しかし、私はあなたがユーロドル上のみ問題なく動作するように不自然なことは何もないことを保証する?

プロはパズルを解く))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 運がない.........................。

以下は、使用されている機能の抜粋です。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ スキップコード

//--- 集計オブジェクトを削除する
Del_comment("MN1トレンド");
Del_comment("W1トレンド");
Del_comment("D1トレンド");
Del_comment("H4トレンド");
Del_comment("H1トレンド");
Del_comment("ord .no: ");
Del_comment("ord .#: ");
//---
TRENDS("MN1 Trend",PERIOD_MN1, 1,86, 33, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 42)を参照してください。
TRENDS("W1 Trend", PERIOD_W1, 1,111, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12)を参照してください。
TRENDS("D1 Trend", PERIOD_D1, 1,97, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12).D1トレンド, PERIOD_D1, 1,97, 48, Lab_Trend_Bear, Lab_Trend_Doj, 12);
TRENDS("H4 Trend", PERIOD_H4, 1,111, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj,12) を実行します。
TRENDS("H1 Trend", PERIOD_H1, 1,97, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12)のようになります。

str=StringLen(AccountCompany())。
if(str<=31) shf=31-str;
さもなくば
if(str>=31) shf=0;
Commen("NameCo",AccountCompany(), 1, shf, 40, "Times New Roman", color_Fon,7);
Commen("in",ABC v2, 1, 36, 51, "Times New Roman", color_Fon,11);
Commen("txt_symb",Symbol(), 1, 3, 64, "Times New Roman", color_Fon,16);

if(OffABC==true)とする。
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);

if(OffABC==false)とする。
{
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
int OneLot= MarketInfo(Symbol(),MODE_MARGINREQUIRED)とする。
int TickValue= MarketInfo(Symbol(),MODE_TICKVALUE)。

if(Digits==2) pips=100;
さもなくば
if(Digits==3) pips=1000;
さもなくば
if(Digits==4) pips=10000;
さもなくば
if(Digits==5) pips=100000;

if(!IsConnected())
{
ObjectDelete("in+")。
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("noconnect", "no connected", 1, 7, 85, "Times New Roman", color_Loss,14);
}
さもなくば
if(IsConnected())
{
ObjectDelete("off+")。
ObjectDelete("noconnect")。
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
}

if(AccountCurrency()=="RUB")
{
EQ_USD= AccountEquity()/iClose("USDRUB",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUB",PERIOD_M1,0) となります。
PRF_USD= AccountProfit()/iClose("USDRUB",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10) となります。
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo")。
}
さもなくば
if(AccountCurrency()=="RUR")
{
EQ_USD= AccountEquity()/iClose("USDRUR",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUR",PERIOD_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUR",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10) となります。
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo")。
}
さもなくば
if(AccountCurrency()=="EUR")
{
EQ_USD= AccountEquity()*iClose("EURUSD",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())*iClose("EURUSD",PERIOD_M1,0);
PRF_USD= AccountProfit()*iClose("EURUSD",PERIOD_M1,0);
LOT_01=(AccountFreeMargin()-AccountStopoutLevel())*(OneLot/10)となります。
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())*OneLot;
ObjectDelete("nodepo")。
}
さもなくば
if(AccountCurrency()=="USD")
{
EQ_USD= AccountEquity()です。
FreeMargin_USD= AccountFreeMargin()-AccountStopoutLevel();
PRF_USD= AccountProfit();
LOT_01=FreeMargin_USD/(OneLot/10)です。
LOT_1= FreeMargin_USD/OneLotです。
ObjectDelete("nodepo")。
}

if(IsConnected() && AccountCurrency()!="RUB" && AccountCurrency()!="RUR" && AccountCurrency()!="EUR" && AccountCurrency()!="USD")
{
ObjectDelete("in+")。
ObjectDelete("noconnect")。
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("depo_symbl",AccountCurrency(), 1, 112, 85, "Times New Roman", color_Equity_Account,14);
Commen("nodepo",impracticable",1, 7, 85, "Times New Roman",color_Free,14);
}
//---

if(Orders_OK==false) order=1;
でなければ order=0 です。

if(OrdersTotal()>=order)
{
for(int pos=OrdersTotal(); pos>=0; pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()!=Symbol())を続ける。
{
SUMM= SUMM+OrderLots()です。
SWAP=SWAP+OrderSwap()です。
COMMIS=COMMIS+OrderCommission()です。
OpenPrice=OpenPrice+OrderOpenPrice()です。

//--- //ベイ・オーダー
if(OrderType()==OP_BUY)
{
baylot= OrderLots()。
if(baylot>=1 && baylot<99.0)
{
bSL1= bSL1+(OrderStopLoss());
bTP1= bTP1+(OrderTakeProfit());
bOPN1= bOPN1+(OrderOpenPrice();
if(bSL1>0) bsumL1=bsumL1+1;
if(bTP1>0) bsumP1=bsumP1+1;
if(bOPN1>0) bsumO1=bsumO1+1;
}
if(baylot>=0.1 && baylot<0.99)
{
bSL01= bSL01+(OrderStopLoss());
bTP01= bTP01+(OrderTakeProfit())です。
bOPN01= bOPN01+(OrderOpenPrice();
if(bSL01>0) bsumL01=bsumL01+1;
if(bTP01>0) bsumP01=bsumP01+1;
if(bOPN01>0) bsumO01=bsumO01+1;
}
} //OP_BUY

++++++++++++++++++++++++++++++++++++++++++++++++++ Пропуск кода

機能

void TRENDS(string name, int PER, int n, int X, int Y, color Lab_Trend_Bull, color Lab_Trend_Bear, color Lab_Trend_Doj, int rsm).
{
int A,B,a,b,cod;
ダブルFup,Fdw;
double OPEN= iOpen(Symbol(),PER,1)。
double CLOSE= iClose(Symbol(),PER,1)。
double EMA21= iMA(Symbol(),PER,21,0,MODE_EMA,PRICE_CLOSE,1)とする。
double EMA89= iMA(Symbol(),PER,89,0,MODE_EMA,PRICE_CLOSE,1)とする。
文字列名2;
color_trend;
bool FLEAT=false。

while(A<1)
{
double FUPPER= iFractals(Symbol(),PER,MODE_UPPER,a)。
if(FUPPER>0) { Fup=FUPPER; A++; }.
a++;
}
while(B<1)
{
double FLOWER= iFractals(Symbol(),PER,MODE_LOWER,b);
if(FLOWER>0) { Fdw=FLOWER; B++; }.
b++;
}
if((CLOSE>=OPEN && CLOSE<Fup) || (CLOSE<=OPEN && CLOSE>Fdw))
FLEAT=true。

if(EMA21>EMA89 && FLEAT==true)
{ cod= 114; color_trend=Lab_Trend_Doj; name2="EMA21>eme89"; }. // ブル
さもなくば
if(EMA21<EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup))です。
{ cod=111; color_trend=Lab_Trend_Bull; name2="Fractal UPPER"; }. // ブル
さもなくば
if(EMA21>EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup))です。
{ cod=110; color_trend=Lab_Trend_Bull; name2="EMA21>ema89 + FRACTAL UPPER"; }. // ブル
さもなくば
if(EMA21<EMA89 && FLEAT==true)
{ cod= 113; color_trend=Lab_Trend_Doj; name2= "ema21<EMA89"; }. // ベア
さもなくば
if(EMA21>EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw))。
{ cod=111; color_trend=Lab_Trend_Bear; name2="Fractal LOWER"; }. // ベア
さもなくば
if(EMA21<EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw)] の場合。
{ cod= 110; color_trend=Lab_Trend_Bear; name2="ema21<EMA89 + FRACTAL LOWER"; }. // ベア
さもなくば
if(EMA21==EMA89 || FLEAT==true)
{ cod= 110; color_trend=Lab_Trend_Doj; name2= "ema21==ema89 || Fractal"; }. // ドージ

name=name+""+name2;
if(PER==PERIOD_MN1) cod=111;
if(cod==110)
{ rsm=rsm+3; X=X-1; Y=Y-3; }.

ObjectCreate(name,OBJ_LABEL,0,0;)です。
ObjectSet(name,OBJPROP_CORNER,n)です。
ObjectSet(name,OBJPROP_XDISTANCE,X)です。
ObjectSet(name, OBJPROP_YDISTANCE,Y)。
ObjectSetText(name,CharToStr(cod), rsm, "Wingdings",color_trend);
}
void Commen(string name, string txt, int n, int X, int Y, string shrift, color clr, int rsm)
{
ObjectCreate(name,OBJ_LABEL,0,0,0)を実行しました。
ObjectSet(name,OBJPROP_CORNER,n)です。
ObjectSet(name,OBJPROP_XDISTANCE,X)です。
ObjectSet(name, OBJPROP_YDISTANCE,Y)。
ObjectSetText(name,txt,rsm,shrift,clr);
}

++++++++++++++++++++++++++++++++++++++++++++++++表示

 
nlp2311:

...

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++出力


"+++++++++++++++++++++++++++++++ と画面に出力する"

そして、正しいコードの挿入方法を学びます。あなたのシートは誰の興味も ない...。

全文はこちらから ご覧ください。

 
メタトレーダーのパスワードを忘れてしまったのですが、どうすれば新しいパスワードを作成できますか?
 
Processor_ua:
メタトレーダーのパスワードを忘れてしまったのですが、どうすれば新しいパスワードを作成できますか?


メールを削除していない場合は、端末のタブ「メールボックス」-「新規アカウント登録...」をご覧ください。

削除してしまった場合は、お取引のある証券会社へお問い合わせください。