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

 
Alexandr24:
インディケータNの前日の最大値を求めるのを手伝ってほしい。iCustomを通してデータを受け取るが、デッドロックになっている。ArrayMaximumで 行われていると思うのですが、どのように値を求めるか

iCustomをどうやってはめ込めばいいのかがわからないのですが、他に選択肢が思いつきません。



1.前日の冒頭のバーナンバーを検索し、終了時のバーナンバーを検索してください。

2.ある数字から別の数字へとループして、最大値を計算するんだ。

もちろんArrayMaximumを使っても 良いのですが、最初のステップの後に

 
プロキシに関しては、もし本当に動作するIPが必要な人がいれば、私は http://buy.fineproxy.org/ に助言することができます。
 

水浸しですみません、もう一度お聞きします。

無料の建玉指標を提案してもらえますか?ありがとうございました。

 
GSB:

そんな不用意なコードは書けませんよ :)

Comment("USDCADAsk = ",USDCADAsk); に続いて USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk は double として宣言されていて、そこに文字列を入れるということです。

そしてまたDigits....^)とポイント

そのようなエラーは自分で探さなければならない、貿易と同じように誰も直してくれないのだ! コンパイラが28個のエラーを発生させ、デモを取引に投入する。本当のお金を使っていればよかったと思うかもしれませんが、市場はあなたを修正したでしょう

それは誰のビッド・アスクなのか?


コレクト


追加変数を使用する必要がないことが判明し、その後、正規化も必要なく、このようになるはずです。
OrderSend("USDCAD",OP_BUY,Lot,MarketInfo("USDCAD",MODE_ASK),slip,0,0,"USDCAD",magic[0],0,Red);
 
Example2:

追加変数を使用する必要がないことが判明し、その後、正規化も必要なく、このようになるはずです。

OrderSend("USDCAD",OP_BUY,Lot,MarketInfo("USDCAD",MODE_ASK),slip,0,0,"USDCAD",magic[0],0,Red);

まず、ご自身で画面に表示して確認しようとしたため、エラーが発生したこと、次に、正規化が望ましいこと、注文設定価格とTP、SL。価格が正規化されていない場合、エラーが発生することがあります。これはルールであり、破ってはいけないことです。例を見て、なぜそうなのか、逆にそうでないのかを分析してください(例:https://book.mql4.com/ru/samples/shared)。
 
こんにちは、OrderOpenPriceに例えば23%を追加する方法を教えてください。OrderOpenPriceがすでに77%であることが分かっている場合。77で割って23をかけると31点ではなく7点になるんです。以下は、if (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point) というコードの行です。これは、Breakevenへの移行ですが、ポイントではなく、パーセンテージでの移行です。ありがとうございました。
 
vidnab:
こんにちは!もしよろしければ、OrderOpenPriceに例えば23%を追加する方法を教えていただけませんか?OrderOpenPriceがすでに77%であることが分かっている場合。77で割って23をかけると31点ではなく7点になるんです。以下は、if (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point) というコードの行です。これは、Breakevenへの移行ですが、ポイントではなく、パーセンテージでの移行です。ありがとうございました。


10万ユーロを50ルーブルで購入し、その後、購入価格に23%上乗せしています。

あなたの場合、コードを完全にレイアウトする必要があります。100%にするだけなら、0.77で割ればいいのですが。

 

ご返信ありがとうございました。以下は、すべてのコードです。

//+----------------------------------------------------------------------------+
| e-MovingInWL2.mq4|電子書籍で漫画(マンガ)を読むならコミック.jp
//| |
//| キム・イゴールV.ことキムIV(KimIV)
//| http://www.kimiv.ru |
//| |
//| 2008.10.27 アドバイザーがストップをブレークイーブンに移動させる。
//+----------------------------------------------------------------------------+
#property copyright"Kim Igor V. aka KimIV"
#プロパティリンク "http://www.kimiv.ru"

//------- Expert Advisor の外部パラメータ -------------------------------------------------------------- +.
extern string _P_Expert = "---------- EA parameters";
extern bool AllSymbols = True; // すべてのシンボルの位置を見る
extern int Magic = -1; // 位置識別子
extern int LevelProfit = 25; // 利益のレベル(ポイント数
extern int LevelWLoss = 1; // 損益分岐点(単位:ポイント
extern bool ShowComment = True; // コメントの表示

//------- 取引注文の実行パラメータ ------------------------------+.
extern string _P_Performance = "---------- 実行時のパラメータ";
extern bool UseSound = True; // 音信号を使用する。
extern string SoundSuccess = "expert.wav"; // 成功時の音
extern string SoundError = "timeout.wav"; // エラー音。
extern inttern NumberOfTry = 2; // 試行回数

//------- Expert Advisor のグローバル変数 --------------------------------------------------------------------------------
bool gbDisabled = False; // ロックされたEAを示すフラグ
bool gbNoInit = False; // 初期化に失敗したことを示すフラグ
color clModifyBuy = Aqua; // 色 clModifyBuy アイコン
color clModifySell = Tomato; // 販売変更アイコンの色

//------- 外部モジュールの接続 ------------------------------------------------
#include <stdlib.mqh>.


//+----------------------------------------------------------------------------+
//| |
//| 定義済み関数
//| |
//+----------------------------------------------------------------------------+
//| エキスパート初期化関数
//+----------------------------------------------------------------------------+
void init() {
gbNoInit=Falseとする。
if (!IsTradeAllowed()){
Message("For EA to work correctly, it is necessaryn "+")
"Allow the EA to trade")となります。
gbNoInit=True; return;
}
if (!IsLibrariesAllowed()){
Message("For the EA to work correctly, you shouldn "+")
"外部EAからのインポートを許可する")。
gbNoInit=True; return;
}
if (!IsTesting()){
if (IsExpertEnabled())Message("次のティックでEAを開始します");
else Message("ボタン「EA起動を許可する」"が解除されました。)
}
start() を実行します。
}

//+----------------------------------------------------------------------------+
//| 専門家による初期化関数
//+----------------------------------------------------------------------------+
void deinit() {
if (!IsTesting())Comment(")です。
}

//+----------------------------------------------------------------------------+
//| エキスパートスタート機能
//+----------------------------------------------------------------------------+
void start() {
if (gbDisabled) {.
Message("Critical error! EA STOPPED!"); return;
}
if (gbNoInit) {.
Message("EA初期化に失敗しました!"); return;
}
if (ShowComment) {.
コメント(IIFs(AllSymbols, "AllSymbols ", ")
, "Magic="+IIFs(Magic<0, "Any", DoubleToStr(Magic, 0))+" "
, "LevelProfit="+DoubleToStr(LevelProfit, 0)+"n ".
, "LevelWLoss="+DoubleToStr(LevelWLoss, 0)+"n ".
);
} else Comment(");

string sy=IIFs(AllSymbols, "", NULL);
MovingInWL(sy, -1, Magic)です。
}


//+----------------------------------------------------------------------------+
//| |
//| ユーザー関数
//| |
//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2005年9月1日
//| 説明:貿易業務の名称を返す。
//+----------------------------------------------------------------------------+
//| パラメータ
//| op - 貿易操作の識別子 |.
//+----------------------------------------------------------------------------+
文字列 GetNameOP(int op) {
スイッチ(op) {
case OP_BUY : return("買い");
case OP_SELL : return("Sell");
case OP_BUYLIMIT : return("BuyLimit")。
case OP_SELLLIMIT : return("SellLimit")。
case OP_BUYSTOP : return("BuyStop")。
case OP_SELLSTOP : return("SellStop")。
default : return("Unknown Operation");
}
}

//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2008年7月18日
//| 説明:条件によって2つの値のうちどちらかを返す。
//+----------------------------------------------------------------------------+
color IIFc(bool condition, color ifTrue, color ifFalse) {...
if (条件) return(ifTrue); else return(ifFalse);
}

//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
|バージョン:2008年02月01日
//| 説明:条件によって2つの値のうちどちらかを返す。
//+----------------------------------------------------------------------------+
string IIFs(bool condition, string ifTrue, string ifFalse) {.
if (条件) return(ifTrue); else return(ifFalse);
}

//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2005年9月1日
//| 説明 : コメントとログにメッセージを表示する|...
//+----------------------------------------------------------------------------+
//| パラメータ: |
//| m - メッセージテキスト
//+----------------------------------------------------------------------------+
void Message(文字列m) {
コメント(m)
if (StringLen(m)>0) Print(m);
}

//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
|バージョン:2006.11.28.
//| 説明:選択された1つの注文を変更する。
//+----------------------------------------------------------------------------+
//| パラメータ
//| pp - 注文の価格水準|...
//|sl - ストップの価格水準||。
//| tp - テイクアウトの価格水準||。
//| ex - 有効期限
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0) {.
bool fm;
color cl=IIFc(OrderType()==OP_BUY)です。
|| OrderType()==OP_BUYLIMIT
|| OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
double op, pa, pb, os, ot;
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;

if (pp<=0) pp=OrderOpenPrice()。
if (sl<0 ) sl=OrderStopLoss();
if (tp<0 ) tp=OrderTakeProfit();

pp=NormalizeDouble(pp, dg)とする。
sl=NormalizeDouble(sl, dg)とする。
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice(), dg)。
os=NormalizeDouble(OrderStopLoss(), dg)。
ot=NormalizeDouble(OrderTakeProfit(),dg)となります。

if (pp!=op || sl!=os || tp!=ot) {。
for (it=1; it<=NumberOfTry; it++) {.
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
while (!IsTradeAllowed())スリープ(5000)。
RefreshRates()。
fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
if (fm) {
if (UseSound) PlaySound(SoundSuccess); break;
} else {
er=GetLastError()。
if (UseSound) PlaySound(SoundError);
pa=MarketInfo(OrderSymbol(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID)とする。
Print("Error(",er,") modifying order:",ErrorDescription(er),", try ",it)を実行します。
Print("Ask=",pa, "Bid=",pb, "sy=",OrderSymbol().Print")。
" op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp);
Sleep(1000*10)です。
}
}
}
}

//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2009年4月23日
//| 説明:ストップレベルをロスレスに移行する。
//+----------------------------------------------------------------------------+
//| パラメータ: |
//| sy - 楽器の名前 ( "" - 任意のシンボル、 |)
//| NULL - 現在のシンボル)
//| op - 操作 ( -1 - 任意の位置) |.
//| mn - MagicNumber ( -1 - 任意のマジック) |...
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {.
ダブルポ、pp;
int i, k=OrdersTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {.
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if ((OrderSymbol()==sy || sy=="))&& (op<0 || OrderType()==op)){
if (mn<0 || OrderMagicNumber()==mn) {.
po=MarketInfo(OrderSymbol(), MODE_POINT)とする。
if (OrderType()==OP_BUY){
if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*po) {。
pp=MarketInfo(OrderSymbol(), MODE_BID)。
if (pp-OrderOpenPrice()>LevelProfit*po){(pp-OrderOpenPrice()>LevelProfit*po)}。
ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1)。
}
}
}
if (OrderType()==OP_SELL) { (オーダータイプ==OP_SELL)
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*po) { {。
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderOpenPrice()-pp>LevelProfit*po) {。
ModifyOrder(-1, OrderOpenPrice()-LevelWLoss*po, -1);
}
}
}
}
}
}
}
}
//+----------------------------------------------------------------------------+

 
これはイゴール・キムのコードだが、彼と連絡が取れない。もし、お役に立てるのであれば!
 
GSB:

まず、ご自身で画面に表示して確認しようとしたため、エラーが発生したこと、次に、正規化が望ましいこと、注文設定価格とTP、SL。価格が正規化されていない場合、エラーが発生する可能性があります。これはルールであり、破ってはいけないことです。例を見て、なぜそうなのか、逆にそうでないのかを分析してください。例えば、https://book.mql4.com/ru/samples/shared

非難するために書いたのではなく、ただ他の人に見てもらうために書いたのです。お忙しい中、ありがとうございました。