ロボットのこと、どうして動かないのか、誰が助けてくれるの? - ページ 6 1234567 新しいコメント 削除済み 2016.02.16 18:33 #51 で、何が悪いんだ、せめて見せてくれよ。 削除済み 2016.02.16 18:36 #52 ここで、私のMT4 ecn、ndd、stp用の関数があります....一年間一度もエラーがないこと//+----------------------------------------------------------------------------+| 注文受付開始機能(BeerGod)|株式会社日立製作所//+----------------------------------------------------------------------------+//| パラメータを指定します。|//| sy - 測定器名 ("" - 現在のシンボル) |...//| op - 操作|| ロット|//ll - ロット|//| SL-ストップレベル//| tp - テイクレベル/// mn - MagicNumber|(マジックナンバー//+----------------------------------------------------------------------------+bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0){double MinLl = MarketInfo(Symbol(),MODE_MINLOT)。double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT)。ll = NormalizeDouble(ll,2);if (ll < MinLl) ll = MinLl; else ll = ll;if (ll > MaxLl) ll = MaxLl; else ll = ll;if (op == 0) // BUYオープン{// フリーファンドが利用可能かどうか確認するif((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))){Print(sy," ",ll," It is impossible to open order Buy,not enough money.");return(0)です。}RefreshRates()。// オープンオーダーint ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);if(ticketbuy<0)の場合Print(sy," OpenPosition.OrderSend Buy fail #",GetLastError());さもなくばPrint(sy," OpenPosition. OrderSend Buy successfully");// スリープ(ポーズ)。// 注文の変更(利食い、損切りの設定)if (sl !=0 || tp !=0){//--- 計算されたSLとTPの価格は正規化する必要があります。double BSLoss = Normalize Double(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)) です。//--- 入力値がゼロの場合、修正価格をゼロに置き換えるif (sl == 0) BSLoss = 0;if (tp == 0) BTProfit = 0;bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);if(!resbuy)Print(sy," OpenPosition.OrderModify Buy fail #",GetLastError());さもなくばPrint(sy," OpenPosition. OrderModify Buy successfully");}}if (op == 1) // 売りを開く。{// フリーファンドの有無の確認if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))){Print(sy," ",ll," It is impossible to open order Sell, not enough money.");return(0)です。}RefreshRates()。// オープンオーダーint ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);if(チケットセル<0)Print(sy," OpenPosition.OrderSend Sell fail #",GetLastError());さもなくばPrint(sy," OpenPosition. OrderSend Sell successfully");// スリープ(ポーズ)。// 注文の変更(利食い、損切りの設定)if (sl !=0 || tp !=0){//--- 計算されたSLとTPの価格は正規化する必要があります。double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));//--- 入力値がゼロの場合、修正価格をゼロに置き換えるif (sl == 0) SSLoss = 0;if (tp == 0) STProfit = 0;bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor).Bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);if(!ressell)Print(sy," OpenPosition.OrderModify Sell fail #",GetLastError());さもなくばPrint(sy," OpenPosition. OrderModify Sell successfully");}}return(True)です。}//終了 Who can help with コーディングのヘルプ [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 削除済み 2016.02.16 18:38 #53 P.S. 司会者、ボタンからコードを挿入することができません。 Vladimir Karputov 2016.02.16 18:42 #54 Vladimir Zubov: P.S. モデレーター、ボタンからコードを挿入できません。コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :) if (sl == 0) SSLoss = 0; 削除済み 2016.02.16 18:45 #55 Karputov Vladimir:コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :)//+----------------------------------------------------------------------------+ //| Функция открытия ордера (BeerGod) | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - текущий символ) | //| op - операция | //| ll - лот | //| sl - уровень стоп | //| tp - уровень тейк | //| mn - MagicNumber | //+----------------------------------------------------------------------------+ bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0) { double MinLl = MarketInfo(Symbol(),MODE_MINLOT); double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT); ll = NormalizeDouble(ll,2); if (ll < MinLl) ll = MinLl; else ll = ll; if (ll > MaxLl) ll = MaxLl; else ll = ll; if (op == 0) // Открытие BUY { // Проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Buy, not enough money."); return(0); } RefreshRates(); // Открываем ордер int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor); if(ticketbuy<0) Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Buy successfully"); // Sleep (Pause); // Модифицируем ордер (выставляем тейкпрофит и стоплосс) if (sl !=0 || tp !=0) { //--- Вычисленные значения цен SL и TP должны быть нормализованы double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- Если входящие значения ноль то заменяем цену модификации на ноль if (sl == 0) BSLoss = 0; if (tp == 0) BTProfit = 0; bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor); if(!resbuy) Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Buy successfully"); } } if (op == 1) // Открытие Sell { // Проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Sell, not enough money."); return(0); } RefreshRates(); // Открываем ордер int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor); if(ticketsell<0) Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Sell successfully"); // Sleep (Pause); // Модифицируем ордер (выставляем тейкпрофит и стоплосс) if (sl !=0 || tp !=0) { //--- Вычисленные значения цен SL и TP должны быть нормализованы double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- Если входящие значения ноль то заменяем цену модификации на ноль if (sl == 0) SSLoss = 0; if (tp == 0) STProfit = 0; bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor); if(!ressell) Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Sell successfully"); } } return (True); } //End 削除済み 2016.02.16 18:46 #56 Karputov Vladimir:コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :) コードを貼り付けるだけならいいのですが、さらに書き込むとコードが消えてしまいます 削除済み 2016.02.16 19:04 #57 PHPとMQLの計算をするときに、どこかでエラーが発生するのですが、アセンブラが必要なら助けてください。 Sergey Gritsay 2016.02.17 05:54 #58 GIM: ありがとうございました。コードライティングについて質問がある場合は、直接またはSkypeで対応します。 ファイル: GIM.mq4 9 kb GIM 2016.02.17 11:38 #59 Sergey Gritsay:Ready, コードに関するご質問は、メールまたはSkypeでお願いします。 Alertは、No pricesというメッセージで出てきます。新しいティックを待っている... Sergey Gritsay 2016.02.17 11:50 #60 GIM: Alertは、No priceというメッセージで出てきます。新しいティックを待つ...デモ口座でも 問題なく使えて、一発でトレードを開始できました。もっと詳しく教えてほしい。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここで、私のMT4 ecn、ndd、stp用の関数があります....
一年間一度もエラーがないこと
//+----------------------------------------------------------------------------+
| 注文受付開始機能(BeerGod)|株式会社日立製作所
//+----------------------------------------------------------------------------+
//| パラメータを指定します。|
//| sy - 測定器名 ("" - 現在のシンボル) |...
//| op - 操作|
| ロット|//ll - ロット|
//| SL-ストップレベル
//| tp - テイクレベル
/// mn - MagicNumber|(マジックナンバー
//+----------------------------------------------------------------------------+
bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)
{
double MinLl = MarketInfo(Symbol(),MODE_MINLOT)。
double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT)。
ll = NormalizeDouble(ll,2);
if (ll < MinLl) ll = MinLl; else ll = ll;
if (ll > MaxLl) ll = MaxLl; else ll = ll;
if (op == 0) // BUYオープン
{
// フリーファンドが利用可能かどうか確認する
if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134)))
{
Print(sy," ",ll," It is impossible to open order Buy,not enough money.");
return(0)です。
}
RefreshRates()。
// オープンオーダー
int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);
if(ticketbuy<0)の場合
Print(sy," OpenPosition.OrderSend Buy fail #",GetLastError());
さもなくば
Print(sy," OpenPosition. OrderSend Buy successfully");
// スリープ(ポーズ)。
// 注文の変更(利食い、損切りの設定)
if (sl !=0 || tp !=0)
{
//--- 計算されたSLとTPの価格は正規化する必要があります。
double BSLoss = Normalize Double(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)) です。
//--- 入力値がゼロの場合、修正価格をゼロに置き換える
if (sl == 0) BSLoss = 0;
if (tp == 0) BTProfit = 0;
bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);
if(!resbuy)
Print(sy," OpenPosition.OrderModify Buy fail #",GetLastError());
さもなくば
Print(sy," OpenPosition. OrderModify Buy successfully");
}
}
if (op == 1) // 売りを開く。
{
// フリーファンドの有無の確認
if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134)))
{
Print(sy," ",ll," It is impossible to open order Sell, not enough money.");
return(0)です。
}
RefreshRates()。
// オープンオーダー
int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);
if(チケットセル<0)
Print(sy," OpenPosition.OrderSend Sell fail #",GetLastError());
さもなくば
Print(sy," OpenPosition. OrderSend Sell successfully");
// スリープ(ポーズ)。
// 注文の変更(利食い、損切りの設定)
if (sl !=0 || tp !=0)
{
//--- 計算されたSLとTPの価格は正規化する必要があります。
double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
//--- 入力値がゼロの場合、修正価格をゼロに置き換える
if (sl == 0) SSLoss = 0;
if (tp == 0) STProfit = 0;
bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor).Bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);
if(!ressell)
Print(sy," OpenPosition.OrderModify Sell fail #",GetLastError());
さもなくば
Print(sy," OpenPosition. OrderModify Sell successfully");
}
}
return(True)です。
}
//終了
P.S. モデレーター、ボタンからコードを挿入できません。
コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :)
コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :)
コード挿入の オンラインSkypeレッスンを無料(無償)で行っています :)
ありがとうございました。
コードライティングについて質問がある場合は、直接またはSkypeで対応します。
Ready, コードに関するご質問は、メールまたはSkypeでお願いします。
Alertは、No priceというメッセージで出てきます。新しいティックを待つ...
デモ口座でも 問題なく使えて、一発でトレードを開始できました。もっと詳しく教えてほしい。