ヘルプできる人 !!! - ページ 6 123456789101112 新しいコメント 削除済み 2010.06.12 17:34 #51 extern string БАЙ = "NASTROI:"; extern int StopLoss = 200; // SL для открываемого ордера extern int TakeProfit = 40; extern double TrailingStop = 3; extern double TrailingStep =0; extern string ЛОТ = "NASTROI LOT:"; extern double Lots = 0.1; // Жестко заданное колич. лотов extern double ДОЛЯ_ДЕП_ОСН_ОРД = 0; // доля от свободных средств extern double MAX_LOT = 40; extern bool NORMALIZ = false; extern string П = "EDGE:"; extern int МАКС_КОЛИЧ_ОРДЕРОВ = 111; extern double БАЛАНС_МАРЖИ=1; extern int TFCLOSE=5; extern string FLAG = "FLAGS:"; extern int BUY =1; //блок бай extern int SELL =1; //блок сел extern int MINIM=1; extern double F=1; extern int ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ = 5; extern int MAGA = 7777; //магик № бай extern double Z=10; //,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, bool DS=0,DB=0,ZB=0,ZS=0; void deinit() { Comment(""); } int start() { //bool DS=0,DB=0,ZB=0,ZS=0; int R=1,CB=0; double Lts, FB=F,FS=F,MG,ZL=0, Min_Lot, Lts1, TPD1; bool Cls_B = false, Cls_S = false, Opn_B = false, Opn_S = false; //00000000000000000000000000000000000000000000000000000 //+------------РАСЧЁТ СТОИМОСТИ------------------------------------------------------+ // Стоимость ордеров if(БАЛАНС_МАРЖИ>0&&NORMALIZ==false) { RefreshRates(); if(AccountFreeMargin()>AccountMargin())MG=AccountFreeMargin(); //if(AccountFreeMargin()<AccountMargin())MG=0; if(БАЛАНС_МАРЖИ*AccountFreeMargin()<AccountMargin())R=0; Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД > 0) Lts=MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД; if(Lts > MAX_LOT) Lts = MAX_LOT; if(MG==0)Lts =0; if(MG>0&&Lts < Min_Lot&&MINIM==0) { R=0; Lts = 0;// Min_Lot; } if(MG>0&&Lts < Min_Lot&&MINIM==1) { Lts = Min_Lot; } Lts1=Lts; } //................................ int m; if(NORMALIZ==true&&БАЛАНС_МАРЖИ>0) { if(AccountFreeMargin()>AccountMargin())MG=AccountFreeMargin(); if(AccountFreeMargin()<AccountMargin())MG=0; Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); //........................................................ if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД>0) m=БАЛАНС_МАРЖИ*MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД/Min_Lot; Lts = m*Min_Lot; if(Lts > MAX_LOT) Lts = MAX_LOT; if(MG==0)Lts =0; if(MG>0&&Lts < Min_Lot) { Lts =Min_Lot; // R=O; } Lts= Lts; } //................................ if(БАЛАНС_МАРЖИ==0) { RefreshRates(); Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД > 0) Lts=AccountFreeMargin()/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД; if(Lts > MAX_LOT) Lts = MAX_LOT; if(Lts < Min_Lot&&MINIM==0) { R=0; Lts = 0;//Min_Lot; } if(Lts < Min_Lot&&MINIM==1) { Lts = Min_Lot; } Lts1=Lts; } for(int x = 0; x < OrdersTotal(); x++) { if(OrderSelect(x, SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MAGA) switch(OrderType()) { case 0:DB=1;break; case 1:DS=1;break; case 4:ZB=1;break; case 5:ZS=1;break; } //if(OrderType() == OP_BUYSTOP)ZB=1; //if(OrderType() == OP_SELLSTOP)ZS=1; //if(OrderType() == OP_SELL)DB=1; if(OrderType() == OP_SELLSTOP&&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);} // if(OrderType() == OP_BUY)DS=1; if(OrderType() == OP_BUYSTOP&&DS==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);} //................................................................... //.................ТЕЙК И СТОП....................... for(int y = 0; y < OrdersTotal(); y++) { if(!OrderSelect(y, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() != Symbol()) continue; if(OrderMagicNumber() != MAGA) continue; } if(OrderType() == OP_BUY&&OrderStopLoss()==0||OrderTakeProfit()==0&&StopLoss>0) { OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point , OrderOpenPrice()+TakeProfit*Point ,MAGA, CLR_NONE); return(0); } if(OrderType() == OP_SELL&&OrderStopLoss()==0||OrderTakeProfit()==0&&StopLoss>0) { OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point , OrderOpenPrice()-TakeProfit*Point ,MAGA, CLR_NONE); return(0); } } //.................................................................... //OOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO if(ZB==0&&ZS==0&&DB==0&&DS==0 ) { Opn_B = true; Opn_S = true; } //OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO // Открытие ордеров while(true) { //OOOOOOOOOOOOOOOOOOOOOOOO ОСНОВНЫЕ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO if(Opn_B == true && BUY ==1) { // CS=1; Alert("Попытка BUY"); if(Opn_B == true && BUY ==1) OrderSend(Symbol(), OP_BUYSTOP,FB*Lts,Ask+Z*ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ*Point,2,0,0,"",MAGA,0,Aqua); if(Fun_Error(GetLastError()) == 1) continue; // return(0); } //-------------------------------------------------- if(Opn_S == true&&SELL==1) { // CB=1; Alert("Попытка SELL"); if(Opn_S == true&&SELL==1) OrderSend(Symbol(), OP_SELLSTOP, FS*Lts,Bid-Z*ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ*Point,2,0,0,"",MAGA,0,Orange);//TimeCurrent()+TIMELIVE*60 if(Fun_Error(GetLastError()) == 1) continue; return(0); } break; } return(0); } //+------------------------------------------------------------------+ int Fun_Error(int Error) { switch(Error) { case 4: Alert("Торговый сервер занят. Пробуем ещё раз.."); Sleep(3000); return(1); case 135: Alert("Цена изменилась. Пробуем ещё раз.."); RefreshRates(); return(1); case 136: Alert("Нет цен. Ждём новый тик.."); while(RefreshRates() == false) Sleep(1); return(1); case 137: Alert("Брокер занят. Пробуем ещё раз.."); Sleep(3000); return(1); case 146: Alert("Подсистема торговли занята. Пробуем ещё.."); Sleep(500); return(1); case 2: Alert("Общая ошибка."); return(0); } //+------------------------------------------------------------------+ } //............................................................. 削除済み 2010.06.12 17:37 #52 は、どのオプション案でもうまくいきそうもないし、すでに書いたように、うまくいきそうもない...。 techno 2010.06.12 17:40 #53 まず、START FUNCTIONの中で変数を宣言してくださいということです。 次に、なぜ2つ目のループが必要なのでしょうか?そして、なぜ私のに余計なチェックを入れたのですか? techno 2010.06.12 17:41 #54 オーダーの種類を保存し、チケットとストップを保存すると、10回の繰り返しが不要になります。 削除済み 2010.06.12 17:41 #55 Techno: 彼のコードは乱雑で、ループ内の同じチェックが10回繰り返され、間違いが山ほどあり、修正関数でもディレイの有効期限ではなくマジックを使っている...すべてデタラメで、うまく説明できなかったこちらが悪い... 。 説明が悪いのではなく、間違った説明 です。私が最初に持っていたものを別の方法で失い、同じエラーが出ています 削除済み 2010.06.12 17:43 #56 Techno: まず、START FUNCTIONの中で変数を宣言してくださいということです。 次に、なぜ2つ目のループが必要なのでしょうか?そして、なぜ私のに余計なチェックを入れたのですか? 同じ場所(スタート内)にあったのですが、保留中の注文を削除したくないし、他のすべてが同じ(ゼロにならない)です。 techno 2010.06.12 17:50 #57 sllawa3: あなたが見ることができるようにとそこ(開始の内側)その後保留中の注文が削除されていないだけで、他のすべてが同じです(リセットされていない) 。 論理的に考えて、この4つの変数は1目盛り ごとにリセットされますよね? 2つ目の質問ですが、オーダーがない場合、これらの変数には何も代入されず、ゼロのままですよね? と最後の質問ですが、もしゼロに等しいなら、どうしてゼロにならないのでしょうか? 削除済み 2010.06.12 17:53 #58 を削除し、(2サイクル目も含めて)完全に修正しました。同じもの 削除済み 2010.06.12 17:54 #59 Techno: 論理的に考えて、この4つの変数は1目盛りごとにリセットされますよね? 2つ目の質問ですが、オーダーがない場合、これらの変数には何も代入されず、ゼロのままですよね? と最後の質問ですが、もしゼロなら、どうしてゼロにならないのでしょうか? まあ、自分で試してみてください。私も同じことを考えていたのですが...。 techno 2010.06.12 17:56 #60 無造作に片付けたり入れたりするのではなく、考えなければならない。何でも知っていて、何でも考えていて、でも結果は不条理。 各オーダーがチケットとスポットを持つループを書くだけで、他には何も書かないでください。ここにコードを記述してください 123456789101112 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まず、START FUNCTIONの中で変数を宣言してくださいということです。
次に、なぜ2つ目のループが必要なのでしょうか?そして、なぜ私のに余計なチェックを入れたのですか?
彼のコードは乱雑で、ループ内の同じチェックが10回繰り返され、間違いが山ほどあり、修正関数でもディレイの有効期限ではなくマジックを使っている...すべてデタラメで、うまく説明できなかったこちらが悪い... 。
説明が悪いのではなく、間違った説明 です。私が最初に持っていたものを別の方法で失い、同じエラーが出ています
まず、START FUNCTIONの中で変数を宣言してくださいということです。
次に、なぜ2つ目のループが必要なのでしょうか?そして、なぜ私のに余計なチェックを入れたのですか?
同じ場所(スタート内)にあったのですが、保留中の注文を削除したくないし、他のすべてが同じ(ゼロにならない)です。
あなたが見ることができるようにとそこ(開始の内側)その後保留中の注文が削除されていないだけで、他のすべてが同じです(リセットされていない) 。
論理的に考えて、この4つの変数は1目盛り ごとにリセットされますよね?
2つ目の質問ですが、オーダーがない場合、これらの変数には何も代入されず、ゼロのままですよね?
と最後の質問ですが、もしゼロに等しいなら、どうしてゼロにならないのでしょうか?
論理的に考えて、この4つの変数は1目盛りごとにリセットされますよね?
2つ目の質問ですが、オーダーがない場合、これらの変数には何も代入されず、ゼロのままですよね?
と最後の質問ですが、もしゼロなら、どうしてゼロにならないのでしょうか?
まあ、自分で試してみてください。私も同じことを考えていたのですが...。
無造作に片付けたり入れたりするのではなく、考えなければならない。何でも知っていて、何でも考えていて、でも結果は不条理。
各オーダーがチケットとスポットを持つループを書くだけで、他には何も書かないでください。ここにコードを記述してください