[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 457

 
sergeev:

ロットを標準化する

ありがとうございました。助かりました。
 
こんにちは!データをExcelにエクスポートすることについて質問です。毎日の初めに「残高」「資金」等の現在値を自動的にExcelにエクスポートするインジケータ(またはスクリプト)が必要です。どのように実装すればよいか教えてください。せめて、どこで読めるかだけでも。検索しても結果が出なかったので、こちらで質問させていただきました。 ありがとうございます。
 
Gerkl:
こんにちは!データをExcelにエクスポートすることについて質問です。毎日の初めに「残高」「資金」等の現在値を自動的にExcelにエクスポートするインジケータ(またはスクリプト)が必要です。どのように実装すればよいか教えてください。せめて、どこで読めるかだけでも。検索しても結果が出なかったので、こちらで質問させていただきました。 ありがとうございます。
Expertでcsvファイルを保存すると、Excelでかなり正常に処理されます。
 
splxgf:
エキスパートでcsvファイルを保存すれば、Excelでかなり正常に処理できます。
どうすればいいか教えてください。そして、その詳細を知ることができる場所。 ありがとうございます。
 
Gerkl:
どうすればいいか教えてください。また、どこで詳しく知ることができるのでしょうか? ありがとうございます。
https://docs.mql4.com/ru/files
 

EAのインジケータを チャートに描画しないようにするにはどうしたらよいか教えてください。

つまり、インジケーターの線がチャート上に描画されないのです。インジケータはこのように呼び出されます。

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
 
ありがとうございます。あまり実感がわかないのですが、これから調べてみます。
 
belck:

EAのインジケータをチャートに描画しないようにするにはどうしたらよいか教えてください。

つまり、インジケーターの線がチャート上に描画されないのです。インジケータはこのように呼び出されます。

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
自分でチャートに書き込まない限り、EA実行時には反映されません。どうやったんですか?
 

EAのテスト中にエラー130 - 間違った停止位置が表示されました。NewOrder関数では、外部変数TakeProfitとStopLossが渡されるはずで、これを達成するためにあらゆることを行ったように思えますが、印刷が示すようにゼロが渡されています。このエラーの原因がここにあることは理解しているのですが、まだ見つけることができていません。あなたの力が必要です。

extern int TakeProfit=100;
extern int StopLoss=100;

if(KVADRAT==1)
{
double Lot=GetLot(MaxRisk)。
Print("Lot=",Lot)。
if(Lot==0)
{
Print("資金が足りません");
return(0)です。
}
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss)。
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss)。
KVADRAT=0とする。
}

//+---------Функция расчета лота---------------------------------------+
double GetLot(int Risk)
{
double Free=AccountFreeMargin()。
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lotとする。
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0)です。
return(Lot)です。
}

//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss)
{
double TP=0;//takeProfit
double SL=0;// stopLoss
double PR=0;// 価格
while(!IsTradeAllowed())Sleep(100)。
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))とする。
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL)とする。
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))とする。
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(Cmd==OP_BUY)
{
PR=NormalizeDouble(Ask,Digits)。
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits)となります。
if(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits)となります。
}
if(Cmd==OP_SELL)
{
PR=NormalizeDouble(Bid,Digits)。
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits)となります。
if(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits)となります。
}
Print("TakeProfit=",TakeProfit," StopLoss=",StopLoss," StopLevel=",MarketInfo(Symbol(),MODE_STOPLEVEL)).Print("TakeProfit=",TakeProfit," StopLoss=",StopLoss,StopLevel=",MarketInfo(Symbol()));
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE)。
if(tic<0)Print("order open error:",GetLastError()); Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP);
return(tic)です。
}

 
DhP:
この機能で魔法をかけてください。

* 魔法をかけに行った